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
  • 相关阅读:
    strpos 判断字符串是否存在
    TP 自动验证
    label 标签的用法,点label选中单选、复选框或文本框
    str_replace 替换 小技巧
    数据库文件MDF的空间占满了,没有自动增长是怎么回事?
    (4.7)mysql备份还原——深入解析二进制日志(3)binlog的三种日志记录模式详解
    (4.6)mysql备份还原——深入解析二进制日志(2)binlog参数配置解析
    (1.16)mysql server优化之buffer pool
    COALESCE函数
    linux网络设置和虚拟机克隆转移之后网卡找不到
  • 原文地址:https://www.cnblogs.com/NotEnough/p/7459235.html
Copyright © 2011-2022 走看看