#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 
 | 
  
 | 
        } 
 | 
    } 
 | 
} 
 |