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

  • 相关阅读:
    17. Java学习之枚举
    【myBatis】It's likely that neither a Result Type nor a Result Map was specified.
    【java】ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    【java】字符串截取
    【oracle】decode函数
    【myBatis】Mapped Statements collection already contains value for xxx
    【java异常】expected at least 1 bean which qualifies as autowire candidate for this depende
    【电脑】E470C如何关闭触摸板
    【java】spring中实例化bean的三种方法区别,使用场景
    【Excel】IF函数
  • 原文地址:https://www.cnblogs.com/dbasys/p/2598691.html
Copyright © 2011-2022 走看看