银河网投[网址]www.308877.com-官网首页

您的位置:银河网投 > www.308877.com > AutoFac学习摘要

AutoFac学习摘要

2019-10-10 17:24

借助于注入(调整反转)
广大的依赖注入工具:AutoFac,Spring.Net,Unity等
借助于注入的办法:1.透过构造函数实行注入2.透过品质进行注入

在乎:在品种中AutoFac的流入有三回,第一次是将数据访问层的类注入到事情逻辑层。第壹遍是将工作逻辑层的类注入到UI层。

AutoFac在MVC的使用

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

概念一个静态的无再次来到的主意

public static void Register()

{

  

//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();
www.308877.com,            // 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.308877.com,转载请注明出处:AutoFac学习摘要

关键词: