-
在Nuget引入Autofac、Autofac.Extensions.DependencyInjection
-
定义Module,方便对注入服务进行管理
public class AutoFacManager : Autofac.Module { //重写Autofac管道Load方法,在这里注册注入 protected override void Load(ContainerBuilder builder) { //程序集注入业务服务 var IAppServices = Assembly.Load("RBAC.Repository"); var AppServices = Assembly.Load("RBAC.Service"); //根据名称约定(服务层的接口和实现均以Service结尾),实现服务接口和服务实现的依赖 builder.RegisterAssemblyTypes(IAppServices).Where(t=>t.Name.EndsWith("Repository")).AsImplementedInterfaces(); builder.RegisterAssemblyTypes(AppServices).Where(t=>t.Name.EndsWith("Service")).AsImplementedInterfaces(); } }
-
在Program.cs中注册:
//Autofac注入 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); builder.Host.ConfigureContainer<ContainerBuilder>(builder => { builder.RegisterModule(new AutoFacManager()); });
-
在构造函数中注入:
IService _Service; public RoleController(IService Service) { _Service = Service; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界