MVC-使用 AutoFac 实现自动注册
AutoFac同ASP.NET core内置的Service一样,是一种第三方依赖注入工具。因为其在MVC中非常流行,所以除了Autofac组件以外,还有专门的MVC integration组件:
1,通过Nuget下载下图两个Autofac类库
下载成功后就会多出下图两个程序集
2,注册
在Global.asax文件中,MvcApplication.cs的Application_Start()方法中添加下列代码:
//1. 获得一个ContainerBuilder(容器建造器)对象 ContainerBuilder builder = new ContainerBuilder(); //2. 注册Controller和FilterProvider builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterFilterProvider(); //配置:指示使用何种interface实例呢? //2.1 可以一个类一个类的注册 //builder.RegisterType<MockUserService>().As<IUserService>(); //2.2 也可以整个程序集的注册 builder.RegisterAssemblyTypes(typeof(ProdUserService).Assembly) .AsImplementedInterfaces(); //3. 通过ContainerBuilder得到一个IContainer容器对象, //4. 并为MVC自动设定解析(resolve:获取“接口对象”) IContainer container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
3,注入
可以通过构造函数注入使用
private IUserService _userService; public HomeController(IUserService userService) { _userService = userService; }
文章转载自:快速开发平台– 云微平台
地址:https://www.hocode.com/