第一步
先下载关于Autofac的使用 <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" /> 这里是6.0 的Netget包 直接引进程序集即可
第二部 创建一个.cs的类然后写方法
//重写Autofac管道Load方法
protected override void Load(ContainerBuilder builder1)
{
//程序集注入业务服务
var IAppSerVice = Assembly.Load("Smarthealthcare.Service");
var AppSerVice = Assembly.Load("Smarthealthcare.Service");
// builder1.RegisterAssemblyTypes(Assembly.LoadFrom("Smarthealthcare.Service")).AsImplementedInterfaces();
// builder1.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces();
//根据名称约定(服务层)(服务层的接口和实现均以Service结尾),实现服务接口和服务实现的依赖
builder1.RegisterAssemblyTypes(IAppSerVice, AppSerVice).Where(x => x.Name.EndsWith("SerVice")).AsImplementedInterfaces();
}
注:在程序集注入服务中 引入你的程序集名称 例:Smarthealthcare.Service 就是我的程序集名称
然后再 把EndsWith里面的SerVice改为你定义的Service即可
第三步 在Program配置AUtofac
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
{
//调用 程序集 注册 存入 方法
// builder.RegisterAdapter 适配器
//builder.Register 注册
//builder.RegisterAssemblyModules 注册程序集模块
//builder.RegisterAssemblyTypes 注册程序集类型
builder.RegisterModule(new AutofacModuleRegister());
});
注:这里我已经写完 复制替换即可