| #region << 版 本 注 释 >> | 
| /*---------------------------------------------------------------- | 
|  * 命名空间:WIDESEAWCS_QuartzJob | 
|  * 创建者:胡童庆 | 
|  * 创建时间:2024/8/2 16:13:36 | 
|  * 版本:V1.0.0 | 
|  * 描述:调度服务仓储业务层注入 | 
|  * | 
|  * ---------------------------------------------------------------- | 
|  * 修改人: | 
|  * 修改时间: | 
|  * 版本:V1.0.1 | 
|  * 修改说明: | 
|  *  | 
|  *----------------------------------------------------------------*/ | 
| #endregion << 版 本 注 释 >> | 
|   | 
| using Autofac; | 
| using Autofac.Extras.DynamicProxy; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Reflection; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEAWCS_Core; | 
| using WIDESEAWCS_Core.AOP; | 
| using WIDESEAWCS_Core.BaseRepository; | 
| using WIDESEAWCS_Core.BaseServices; | 
| using WIDESEAWCS_QuartzJob.Repository; | 
| using WIDESEAWCS_QuartzJob.Service; | 
|   | 
| namespace WIDESEAWCS_QuartzJob.QuartzExtensions | 
| { | 
|     public class QuartzJobAutofacModuleRegister : Autofac.Module | 
|     { | 
|         protected override void Load(ContainerBuilder builder) | 
|         { | 
|             var basePath = AppContext.BaseDirectory; | 
|   | 
|             #region 带有接口层的服务注入 | 
|   | 
|             var dllFile = Path.Combine(basePath, "WIDESEAWCS_QuartzJob.dll"); | 
|   | 
|             if (!File.Exists(dllFile)) | 
|             { | 
|                 var msg = "WIDESEAWCS_QuartzJob.dll 丢失,因为项目解耦了,所以需要先F6编译,再F5运行,请检查 bin 文件夹,并拷贝。"; | 
|                 //log.Error(msg); | 
|                 throw new Exception(msg); | 
|             } | 
|             Type baseType = typeof(IDependency); | 
|             //builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepository<>)).InstancePerDependency();//注册仓储 | 
|             //builder.RegisterGeneric(typeof(ServiceBase<,>)).As(typeof(IService<>)).InstancePerDependency();//注册服务 | 
|   | 
|             // 获取 Service.dll 程序集服务,并注册 | 
|             Assembly assemblysServices = Assembly.LoadFrom(dllFile); | 
|             builder.RegisterAssemblyTypes(assemblysServices).Where(type => (baseType.IsAssignableFrom(type)) && !type.IsAbstract) | 
|             .AsSelf().AsImplementedInterfaces() | 
|             .InstancePerLifetimeScope();  //引用Autofac.Extras.DynamicProxy; | 
|             #endregion | 
|   | 
|         } | 
|     } | 
| } |