前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AutoFac+ASP.NetMvc,AspNet.Core

AutoFac+ASP.NetMvc,AspNet.Core

作者头像
莫问今朝
发布2018-08-31 14:56:42
3.1K0
发布2018-08-31 14:56:42
举报
文章被收录于专栏:博客园博客园

ASP.Net.Mvc 

引用

install-package autofac
install-package Mvc5
//创建一个用于注册的对象
ContainerBuilder  builder = new ContainerBuilder()
//获取实现类的程序集
Assembly[] assembly = new Assembly[]{Assembly.Load(实现类程序集)}
builder.RegisterAssemblyTypes(assembly) //注册程序集
         .Where(y=>!y.IsAbstract)//不是抽象类
         .AsImplementedInterfaces()//注册所有实现接口
         .PropertiesAutowired(); //自动注入 (必须为属性)

//将本程序所有控制器全部注册
builder.RegisterControllers(typeof(MvcApplication).Assembly)
         .PropertiesAutowired();
Container container = builder.Build();
//将当前容器的控制器工厂替换掉默认的控制器工厂,(即:不要MVC默认的控制器工厂,用autofac容器中的控制器替代)
//DefaultControllerFactory  mvc默认的控制器工厂
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

代码填入Global中

Asp.Net.Core

引用

install-package autofac
install-package autofac-extensions.DependencyInjection

代码,添加到Startup的服务中

public  IServiceProvider ConfigureServices(IServiceCollection service)
        {
            service.AddMvc();
            var builder = new ContainerBuilder();
            Assembly[] assembly = new Assembly[] { Assembly.Load("AutoFacDemo.BLL") };
            builder.RegisterAssemblyTypes(assembly)
             .AsImplementedInterfaces()
             .PropertiesAutowired();
            builder.Populate(service);
            return new AutofacServiceProvider(builder.Build());
            
        }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ASP.Net.Mvc 
  • Asp.Net.Core
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档