zoukankan      html  css  js  c++  java
  • Autofac在mvc 3中的使用

    Autofac在mvc 3中的使用

    1、直接集成

    引入Autofac.dll,Autofac.Configuration.dll

            private void SetupResolveRules(ContainerBuilder builder)
            {
                //Components are wired to services using the As() methods on ContainerBuilder
                builder.RegisterType<SysUserMgrImp>().As<ISysUserMgr>();
                builder.RegisterType<FormsAuthServiceImp>().As<IFormsAuthService>();
            }
    
    
           protected void Application_Start()
            {
                // 依赖注入
                var builder = new ContainerBuilder();
                SetupResolveRules(builder);
                builder.RegisterControllers(Assembly.GetExecutingAssembly());
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    
    
                AreaRegistration.RegisterAllAreas();
    
                RegisterGlobalFilters(GlobalFilters.Filters);
                RegisterRoutes(RouteTable.Routes);
    
            }

    使用构造函数注入

        public class SysUserController : AdminBaseController
        {
            private ISysUserMgr sysUserMgr;// = new SysUserMgrImp();
    
            public SysUserController(ISysUserMgr mgr)
            {
                sysUserMgr = mgr;
            }
    ............................


    2、配置文件

    引入Autofac.dll,Autofac.Configuration.dll,Autofac.Configuration.dll

    修改web.config

        <configSections>
            <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/>
        </configSections>
    
        <autofac defaultAssembly="GPS.Domain">
            <components>
                <component type="GPS.Domain.Implements.SysUserMgrImp,GPS.Domain.Implements" service="GPS.Domain.Interfaces.ISysUserMgr" />
                <component type="GPS.Domain.Implements.FormsAuthServiceImp,GPS.Domain.Implements" service="GPS.Domain.Interfaces.IFormsAuthService" >
                </component>
            </components>
        </autofac>

    修改Global.asax

            protected void Application_Start()
            {
                // 依赖注入
                var builder = new ContainerBuilder();
                builder.RegisterModule(new ConfigurationSettingsReader("autofac")); 
                builder.RegisterControllers(Assembly.GetExecutingAssembly());
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    
    
                AreaRegistration.RegisterAllAreas();
    
                RegisterGlobalFilters(GlobalFilters.Filters);
                RegisterRoutes(RouteTable.Routes);
            }

    使用构造函数注入

        public class AccountController : Controller
        {
    
            private ISysUserMgr sysUserMgr;// = new SysUserMgrImp();
            private IFormsAuthService formAuthService;// = new FormsAuthServiceImp();
    
            public AccountController(ISysUserMgr userMgr, IFormsAuthService formAuth)
            {
                sysUserMgr = userMgr;
                formAuthService = formAuth;
            }
    ........................


    参考
    http://code.google.com/p/autofac/wiki/Mvc3Integration
    http://code.google.com/p/autofac/wiki/XmlConfiguration

  • 相关阅读:
    羊车门悖论
    python--程序语言中的我行我素者
    最大流isap
    约瑟夫环问题
    CF 916 一言题解
    ZJOI2006 书架
    板子
    windows激活流程
    Ant Design 坑
    js+jQuery判断一个点是否在多边形中
  • 原文地址:https://www.cnblogs.com/dbasys/p/2598691.html
Copyright © 2011-2022 走看看