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/

 

posted @ 2022-02-12 16:38  码上的飞鱼  阅读(341)  评论(0)    收藏  举报