Autofac一个优秀的.NET IoC框架(转载)
1 前置阅读
在阅读本文章之前,你可以先阅读:
- 什么是依赖注入
2 简介
Autofac与C#语言的结合非常紧密,并学习它非常的简单,也是.NET领域最为流行的IoC框架之一。
3 使用
首先,将Autofac的NuGet软件包安装到您的应用程序中。
然后,我们通过创建ContainerBuilder来注册组件。
接着,可以通过在一个已存在的生命周期上调用 BeginLifetimeScope() 方法来创建另一个生命周期作用域, 以根容器作为起始。生命周期作用域是可释放的并且追踪组件的释放, 因此确保你总是调用了 "Dispose()"" 或者把它们包裹在 "using" 语句内。
最后,在注册完组件并暴露相应的服务后, 你可以从创建的容器或其子生命周期中解析服务. 让我们使用 Resolve() 方法来实现:
让我们来看看完整代码:
让我们来看看输出结果:
4 在 Asp.Net Core 中使用
首先,将Autofac,Autofac.Extensions.DependencyInjection的NuGet软件包安装到您的应用程序中。
然后,在Program.Main中增加.UseServiceProviderFactory(new AutofacServiceProviderFactory())
接着,在Startup.ConfigureServices中增加services.AddControllersWithViews();
接着,在Startup.ConfigureContainer方法中,将Knife,Actor注册到Autofac中ContainerBuilder。
最后,增加HomeController,执行actor.Kill。
启动调试,让我们来看看输出结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?