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
  • 相关阅读:
    springboot文件上传: 单个文件上传 和 多个文件上传
    Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格
    springboot项目搭建:结构和入门程序
    POJ 3169 Layout 差分约束系统
    POJ 3723 Conscription 最小生成树
    POJ 3255 Roadblocks 次短路
    UVA 11367 Full Tank? 最短路
    UVA 10269 Adventure of Super Mario 最短路
    UVA 10603 Fill 最短路
    POJ 2431 Expedition 优先队列
  • 原文地址:https://www.cnblogs.com/NotEnough/p/7459235.html
Copyright © 2011-2022 走看看