当前位置: 永利皇宫手机版网址 > www.304.com > 正文

AutoFac学习摘要

时间:2019-11-28 04:27来源:www.304.com
AutoFac学习摘要。依附注入(调整反转) 大范围的信赖注入工具:AutoFac,Spring.Net,Unity等 正视注入的议程:1.由此布局函数进行注入2.通过品质进行注入 留意:在档次中AutoFac的流入有若干回

AutoFac学习摘要。依附注入(调整反转)
大范围的信赖注入工具:AutoFac,Spring.Net,Unity等
正视注入的议程:1.由此布局函数进行注入2.通过品质进行注入

留意:在档次中AutoFac的流入有若干回,第一遍是将数据访问层的类注入到事情逻辑层。第贰遍是将职业逻辑层的类注入到UI层。

AutoFac在MVC的使用

我在APP_Start文件夹中新建了一个类命名叫AutoFacConfig

概念二个静态的无重回的措施

public static void Register()

AutoFac学习摘要。{

  

AutoFac学习摘要。//1.0 创建叁个autofac的容器对象
            var bulider = new ContainerBuilder();
            //1.0.1 获取程序集载入到Assembly对象中
            Assembly controllerDll = Assembly.Load("Study.CRM.Site");
            //1.0.1 告诉autofac对象以后实例化的调节器所存在的次第集是Study.CRM.Site.dll
            bulider.RegisterControllers(controllerDll);

            #region 2.0 仓库储存的挂号
            //2.0 利用bulider对象开头成立仓库储存的落实类与相应的存放接口的相应关系
            //注意:假设加了InstancePerHttpRequest() 每一次都以的新的实业进行注入操作

            //注册单个仓库储存来到其相应的接口
            //bulider.RegisterType(typeof(sysFunctionRepository)).As(typeof(IsysFunctionRepository)).InstancePerHttpRequest();

            //注册程序中持有的类到其贯彻接口
            Assembly repositoryAss = Assembly.Load("Study.CRM.Repository");
            bulider.RegisterTypes(repositoryAss.GetTypes()).AsImplementedInterfaces();

            #endregion

            #region 3.0 业务逻辑层的挂号
            //3.0 利用bulider对象起始创办专业逻辑完结类与相应的事体逻辑接口的目的关联
            //单个注册职业逻辑类到其相应的接口
            //bulider.RegisterType(typeof(sysFunctionServices)).As(typeof(IsysFunctionServices)).InstancePerHttpRequest();

            //注册业务逻辑程序中的全部类到其促成的接口(AsImplementedInterfaces() 此方法:正是用来机关转成接口的)
            Assembly servicesAss = Assembly.Load("Study.CRM.Services");
            bulider.RegisterTypes(servicesAss.GetTypes()).AsImplementedInterfaces();

            //注册当前前后相继中项目名称的前缀为sysFunction 的所对应类的实例
            //bulider.RegisterTypes(servicesAss.GetTypes().Where(c => c.Name.StartsWith("sysFunction")).ToArray()).AsImplementedInterfaces();

            #endregion

            //4.0 告诉MVC框架未来享有调整器的目的的创导工作付出autofac.dll中的调整器工厂来成功
            //特点:会使用调控器中的有参数构造函数创造其指标,同有的时候候在创立的经过中,会借助布局函数中的
            //接口参数,将此接口的切实可行落到实处类的靶子注入
            //4.0.1  根据已经登记好的组装成立此容器对象中装有的照耀关系的切实可行落到实处
            var container = bulider.Build();
            // 4.0.2 将MVC的调控器对象实例 交由autofac来创建
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

}

 

在global文件中开展注册

 public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            //注册区域路由法规
            AreaRegistration.RegisterAllAreas();
            //注册全局过滤器
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            //注册网址路由
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //优化js,css文件
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //利用AutoFac实现项指标IOC和DI
            AutoFacConfig.Register();
        }
    }

 

编辑:www.304.com 本文来源:AutoFac学习摘要

关键词: