【发布时间】:2019-04-23 08:32:00
【问题描述】:
我在 ASP.NET Core 管道中有一个中间件,我在其中像这样在运行时注入一个对象
public async Task Invoke(HttpContext context)
{
_container.Inject(someObject);
await _requestDelegate(context);
}
我现在面临的问题是,对于每个请求,它都会注入一个 this 的实例并且使我的容器膨胀。
如果我这样做_container.GetAllInstances<SomeType>(),我会得到 100 多个对象。有什么方法可以注入请求范围内的对象,并在请求完成后处理掉该对象?
【问题讨论】:
-
似乎您正在将运行时数据与对象组合混合在一起,即not a great idea。
-
据我所知,您可以将范围生命周期与 AddScope 方法一起用于您的对象/每个请求。容器 IoC 将为您处理何时 Dispose 对象。如果您想检索使用相同接口类型注册的对象,则可以按名称注入它们。这就是原因。每个请求注入一个对象?以后会用吗?
标签: asp.net-core dependency-injection .net-core structuremap