.NET Core 6 中 Autofac 的接口作用域和 ResolveByKey

接口作用域

Autofac 在处理接口时支持两种作用域:

- 瞬态(Transient):每次请求都会创建一个新的实例。

- 单例(Singleton):在应用程序生命周期内,所有请求都返回同一个实例。

ResolveByKey

ResolveByKey 方法可用于通过键值解析接口,以便在多个实例的情况下指定要返回的特定实例。它的工作原理如下:

  • Autofac 根据键值查找已注册的实例。
  • 如果未找到与键值匹配的实例,则会创建一个新实例并返回。
  • 如果已启用作用域(例如,使用中间件),则 Autofac 会检查作用域是否处于活动状态。如果是,则返回作用域内的实例;否则,返回根范围内的实例。

这种机制确保了在需要时可以轻松创建和解析特定实例,即使在多实例场景中也是如此。

zip
autofactest.zip 预估大小:11个文件
file
autofactest.csproj 627B
file
autofactest.csproj.user 406B
file
appsettings.Development.json 127B
file
AutofacMiddle.cs 1017B
file
Startup.cs 6KB
folder
Properties 文件夹
file
launchSettings.json 820B
file
Program.cs 796B
file
AppHttpContext.cs 851B
file
ClassTest.cs 481B
folder
Controllers 文件夹
file
HomeController.cs 1KB
file
appsettings.json 151B
zip 文件大小:6.5KB