用Autofac实现MVC5的IoC控制反转方法

Autofac跟Ninject一样,都是用于IOC,实现依赖注入的。主要有两个步骤,其余跟Ninject差不多。

1、主要的操作是在MVC项目下的Infrastructure(基础结构/公共建设)文件夹下,新建一人注册Autofac的IOC的类

namespace BookShop.WebUI.Infrastructure
{
    public class AutofacReg
    {
        public static void RegisterDenpendencies()
        {
            var build = new ContainerBuilder();
            build.RegisterControllers(typeof(MvcApplication).Assembly);
            build.RegisterType<BookRepository>().As<IBookRepository>(); //注册接口IBookRepository所依赖的实现类型BookRepository
            IContainer container = build.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
    }
}

2、在Global.asax文件里调用1、里的静态方法RegisterDenpendencies(),使用我们自定义的AutofacDependencyResolver(container)

来替换mvc5中默认的DependencyResolver,这样就能够让mvc5支持DI,依赖注入。

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            //设置Controller工厂
            //ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
            //设置Ninject DependencyResolver
            //DependencyResolver.SetResolver(new NinjectDependencyResolver());
            AutofacReg.RegisterDenpendencies();
        }
    }
时间: 2024-08-25 19:46:13

用Autofac实现MVC5的IoC控制反转方法的相关文章

IoC实践--用Autofac实现MVC5.0的IoC控制反转方法

Autofac是一个.net平台下发性能还不错的IoC框架,利用它可以实现依赖注入和控制反转,使自己的软件模块之间的耦合性大大降低,让软件扩展.维护更加容易.控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题.下面我就用Autofac实现ASP.NET mvc5.0的IOC控制反转的方法.这里用到是vs2013,Autofac ASP.NET MVC 5 Integration和mvc 5.0.Autofac ASP.N

IoC实践--用Unity实现MVC5.0的IoC控制反转方法

精彩内容马上就来精彩内容马上就来精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来精彩内容马上就来精彩内容马上就来 精彩内容马上就来精彩内容马上就来

谈谈php里的IOC控制反转,DI依赖注入

理论 发现问题 在深入细节之前,需要确保我们理解"IOC控制反转"和"DI依赖注入"是什么,能够解决什么问题,这些在维基百科中有非常清晰的说明. 控制反转(Inversion of Control,缩写为IoC):是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度. 依赖注入(Dependency Injection,简称DI):DI是IOC的一种实现,表现为:在类A的实例创建过程中即创建了依赖的B对象,通过类型或名称来判断将不同的对象注入到不同的属

IOC控制反转

控制反转: 把对象的创建交给spring容器来做 spring容器创建对象的方式 1.默认是调用默认的构造函数 2.利用静态工厂方法创建 spring调用工厂方法产生对象,但是真正创建对象还是由程序员来完成的 3.实例工厂方法 说明: spring配置文件中,只要是一个bean就会为该bean创建对象 spring容器创建对象的时机 在单例的情况下 1.在默认的情况下,启动spring容器创建对象 2.在spring的配置文件bean中有一个属性lazy-init="default/true/f

谈谈php里的IOC控制反转,DI依赖注入(转)

转自:http://www.cnblogs.com/qq120848369/p/6129483.html 发现问题 在深入细节之前,需要确保我们理解"IOC控制反转"和"DI依赖注入"是什么,能够解决什么问题,这些在维基百科中有非常清晰的说明. 控制反转(Inversion of Control,缩写为IoC):是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度. 依赖注入(Dependency Injection,简称DI):DI是IOC的一种实现

Spring学习之Ioc控制反转(1)

开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------------------------------开始啦啦啦啦啦------------------------------------------------------------------------------- 从开始接触spring起,听到最多的就是Ioc(控制反转)和AOP(面向切面编程

.NET之IOC控制反转运用

当前场景: 如果有不同的用户.使用同一个系统.而不同的客户有某些不同的需求.在不改变系统主体的情况下,可以直接使用IOC控制反转依赖搭建项目 1.添加接口层 目前里面只有一个会员的类.里面有一个登录接口 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IService { public inte

Spring学习之Ioc控制反转(2)

开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------------------------------开始啦啦啦啦啦------------------------------------------------------------------------------- 上一篇博文简单的演示了如何用Spring框架创建bean,注入bean,并使用到

Spring详解(二)------IOC控制反转

我相信提到 Spring,很多人会脱口而出IOC(控制反转).DI(依赖注入).AOP等等概念,这些概念也是面试官经常问到的知识点.那么这篇博客我们就来详细的讲解 IOC控制反转. ps:本篇博客源码下载链接:http://pan.baidu.com/s/1miwZIf2 密码:oquc 1.什么是 IOC? IOC-Inversion of Control,即控制反转.它不是什么技术,而是一种设计思想. 传统的创建对象的方法是直接通过 new 关键字,而 spring 则是通过 IOC 容器来