AutoFac学习摘要手机游戏下载网站:

作者: 手机游戏下载网站  发布:2019-11-13

依傍注入(调整反转)
普及的信赖注入工具: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();
            // 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();
        }
    }

 

本文由银河网站登录发布于手机游戏下载网站,转载请注明出处:AutoFac学习摘要手机游戏下载网站:

关键词: