【发布时间】:2018-05-17 00:02:36
【问题描述】:
我一直在使用 asp.net 核心依赖注入,但我看到了一个意想不到的行为,至少对我来说是这样。我正在向容器中添加一个新服务,如下所示:
services.AddScoped<IMyClass>(provider =>
{
return new MyClass(
"anyValue"
});
之后,我将该类注入到另一个类中以使用它:
public class AnotherClass(IMyClass xxx){
}
问题是基于请求信息在 MyClass 构造函数上进行了一些配置。问题是我看到 MyClass 构造函数只在应用程序启动时执行。之后,该类似乎对所有调用使用相同的实例。当我使用 Scoped 服务时,我希望每个请求都有一个新实例,我错了吗?
谢谢。
【问题讨论】:
-
请举个例子。
-
确保
MyClass没有像Captive Dependency 一样保持活动状态。 -
我相信我发现了问题,但仍然不知道如何解决。如果我将 IMyClass 注入控制器,则作用域生命周期将起作用。如果我将它注入另一个类(在我的情况下,在另一个项目中),它似乎使用单例。
标签: asp.net-core dependency-injection .net-core