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()方法即可。
使用的话,我一般都是构造函数注入方式
作者:王家大人
出处:http://wms01.cnblogs.com
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:
ASP.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?