一、使用Autofac实现一次性对程序集中类的依赖注入
1.导入autofac包10.0.0版本
dotnet add package Autofac
dotnet add package Autofac.Extensions.DependencyInjection
2.配置需要注册服务的程序集的文件
public class AutofacModuleRegister : Autofac.Module
{protected override void Load(ContainerBuilder builder){var basePath = AppContext.BaseDirectory;var serviceDllFile = Path.Combine(basePath, "BCVP.Net8.Service.dll");var repositoryDllFile = Path.Combine(basePath, "BCVP.Net8.Repository.dll");// 注册服务builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerDependency();builder.RegisterGeneric(typeof(BaseService<,>)).As(typeof(IBaseService<,>)).InstancePerDependency();// 获取Service.dll 程序集服务,并注册var assemblysService = Assembly.LoadFrom(serviceDllFile);builder.RegisterAssemblyTypes(assemblysService).AsImplementedInterfaces().PropertiesAutowired().InstancePerDependency();// 获取Repository.dll 程序集服务,并注册var assemblysRepository = Assembly.LoadFrom(repositoryDllFile);builder.RegisterAssemblyTypes(assemblysService).AsImplementedInterfaces().PropertiesAutowired().InstancePerDependency();}
}
