我知道在旧的 .NET 中我们曾经有 Autofac 和注射器网络?
但是为什么.NET Core仍然维护Autofac?
https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html
我们可以依赖使用
addsingleton vs addscoped vs addtransient
有什么理由吗?
谢谢。
Autofac 是一个早在 .NET Core 之前就存在的库,因此迁移它是有意义的,至少是为了更轻松地迁移已经使用它的项目。此外,它也不是由 Microsoft 和/或开发 .NET Core 的团队维护的(请参阅 github 项目)。
Autofac 支持比在 DI 中构建更多的功能,后者错过了诸如(参见文档)之类的功能:
内置服务容器旨在满足框架和大多数消费者应用程序的需求。我们建议使用内置容器,除非您需要它不支持的特定功能,例如:
- 房产注入
- 基于名称注入(仅限 .NET 7 及更早版本。有关更多信息,请参阅Keyed services。)
- 儿童容器
- 自定义生命周期管理
- Func 支持延迟初始化
- 基于约定的注册