zoukankan      html  css  js  c++  java
  • Autofac 依赖注入

    在Global.asax.cs 里注册

       protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                RegisterGlobalFilters(GlobalFilters.Filters);
                RegisterRoutes(RouteTable.Routes);
    
                SetKeywordInCache();
                AutoMapperConfiguration.Configure();
                Gxrc.Model.Mappings.AutoMapperConfiguration.Configure();
                Bootstrapper.Run(); //启动注册
                //Gxrc.BLL.Helper.WLXTSettingHelp.InitWLXTSettinList();
            }
    using System.Web.Mvc;
    using Autofac;
    using Autofac.Integration.Mvc;
    using System.Reflection;
    using Gxrc.DATA;
    using Gxrc.Model.Mappings;
    using Gxrc.DATA.DataOperation.Other;
    using Gxrc.Service.Other;
    using Gxrc.Service.Other.Setting;
    
    namespace Mvc_Vip
    {
        public static class Bootstrapper
        {
            public static void Run()
            {
                SetAutofacContainer();
                AutoMapperConfiguration.Configure();
            }
            private static void SetAutofacContainer()
            {
                ContainerBuilder builder = new ContainerBuilder();
                builder.RegisterControllers(Assembly.GetExecutingAssembly());
                builder.RegisterType<UnitOfWork>().As<IUnitOfWork>().InstancePerRequest();
                builder.RegisterFilterProvider();
                builder.RegisterType<EnterpriseDatabaseFactory>().As<IEnterpriseDatabaseFactory>().InstancePerRequest();
                builder.RegisterType<LogDatabaseFactory>().As<ILogDatabaseFactory>().InstancePerRequest();
                builder.RegisterType<OtherDatabaseFactory>().As<IOtherDatabaseFactory>().InstancePerRequest();
                builder.RegisterType<JobseekerDatabaseFactory>().As<IJobseekerDatabaseFactory>().InstancePerRequest();
                builder.RegisterType<TimelineDatabaseFactory>().As<ITimelineDatabaseFactory>().InstancePerRequest();
    
    
                builder.RegisterAssemblyTypes(typeof(WLXTSettingOperation).Assembly)
               .Where(t => t.Name.EndsWith("Operation"))
               .AsSelf().InstancePerRequest();
                builder.RegisterAssemblyTypes(typeof(WLXTSettingService).Assembly)
                .Where(t => t.Name.EndsWith("Service"))
               .AsSelf().InstancePerRequest(); //service 所在程序集dll 所有以Service结尾的都注册。
    
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            }
    
            #region Bll层 非接口抽象类注入
            /// <summary>
            /// 原始的Bll层的实体类注册
            /// </summary>
            class OriginalBllModule : Autofac.Module
            {
                protected override void Load(ContainerBuilder builder)
                {
                   
                    base.Load(builder);
                }
            }
            #endregion
        }
    }
    Bootstrapper.cs
  • 相关阅读:
    机器学习框架之sklearn简介
    ubuntu 16.04下使用 python pip的安装问题。
    ubuntu 16.04 搭建git小型服务器
    使用config 来管理ssh的会话
    【linux】su、sudo、sudo su、sudo -i的用法和区别
    【python】确保文件写入结束
    【python】描述符descriptor
    【python】类(资料+疑惑)
    【pymongo】mongodb cursor id not valid error
    【python】继承关系和isinstance
  • 原文地址:https://www.cnblogs.com/NotEnough/p/7459235.html
Copyright © 2011-2022 走看看