zoukankan      html  css  js  c++  java
  • ASP.NET MVC Autofac自动注入

    依赖注入容器有很多插件,我用过Unity和Autofac,这两个插件给我最明显的感觉就是Autofac很快,非常的快,毕竟是第三方开发的,而Unity相对而言性能比较稳定

    下面附上Autofac自动注入代码:(IDependency接口表示要注入的接口必须要继承它,WEB中必须要添加接口类库和接口实现类库,否则会注入失败),其实原理就是反射

    using System.Linq;
    using System.Reflection;
    using System.Web.Compilation;
    using System.Web.Mvc;
    using Autofac;
    using Autofac.Integration.Mvc;
    using Framework.Core;
    
    namespace MsSystem.Web
    {
        /// <summary>
        /// Autofac依赖注入配置
        /// </summary>
        public class AutofacConfig
        {
            /// <summary>
            /// 初始化
            /// </summary>
            public static void Initialise()
            {
                var builder = RegisterService();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
            }
    
            /// <summary>
            /// 注入实现
            /// </summary>
            /// <returns></returns>
            private static ContainerBuilder RegisterService()
            {
                var builder = new ContainerBuilder();
    
                var baseType = typeof(IDependency);
    
                //扫描IService和Service相关的程序集
    
                var assemblys = BuildManager.GetReferencedAssemblies().Cast<Assembly>()
                    .Where(m => m.FullName.Contains("MsGPM")).ToList();
    
    
                builder.RegisterControllers(assemblys.ToArray());
    
                //自动注入
                builder.RegisterAssemblyTypes(assemblys.ToArray())
                       .Where(t => baseType.IsAssignableFrom(t) && t != baseType)
                       .AsImplementedInterfaces().InstancePerLifetimeScope();
                return builder;
            }
        }
    }

    在Global Application_Start 中添加AutofacConfig.Initialise()方法即可。

    使用的话,我一般都是构造函数注入方式

  • 相关阅读:
    读《被绑架的中国经济》有感
    互联网世界观
    了解360 ~~《我的互联网方法论》
    了解腾讯~~《马化腾的商业帝国》
    nginx 动静分离 以及 负载均衡配置
    linux 常用命令
    solr 配置中文分词器
    solr搜索配置权重
    JDK8集合类源码解析
    JDK8集合类源码解析
  • 原文地址:https://www.cnblogs.com/wms01/p/6201314.html
Copyright © 2011-2022 走看看