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