首页 > Web开发 > 详细

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

时间:2017-04-21 22:52:09      阅读:244      评论:0      收藏:0      [点我收藏+]

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();
        }
    }

 

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

原文:http://www.cnblogs.com/yxlq/p/6746218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!