using Autofac;
using Autofac.Extras.DynamicProxy;
using System.Reflection;
namespace DS.Module.AutofacModule;
///
///
///
public class AutofacModuleRegister : Autofac.Module
{
///
/// 将模块服务添加到依赖注入服务容器中
///
/// 依赖注入服务容器
///
protected override void Load(ContainerBuilder builder)
{
var basePath = AppContext.BaseDirectory;
#region 带有接口层的服务注入
var servicesDllFile = Path.Combine(basePath, "DS.WMS.Core.dll");
if (!(File.Exists(servicesDllFile)))
{
var msg = "Service.dll 丢失,因为项目解耦了,所以需要先F6编译,再F5运行,请检查 bin 文件夹,并拷贝。";
throw new Exception(msg);
}
// 获取 Service.dll 程序集服务,并注册
var assemblysServices = Assembly.LoadFrom(servicesDllFile);
builder.RegisterAssemblyTypes(assemblysServices)
.AsImplementedInterfaces()
.InstancePerDependency()
.PropertiesAutowired()
.EnableInterfaceInterceptors()
//.InstancePerLifetimeScope()
; //引用Autofac.Extras.DynamicProxy
//.InterceptedBy(cacheType.ToArray());//允许将拦截器服务的列表分配给注册。
#endregion 带有接口层的服务注入
}
}