我一直在使用asp.net核心依赖注入,我看到了一种不期望的行为,至少对我而言。我正在向容器添加新服务,如下所示:
services.AddScoped<IMyClass>(provider =>
{
return new MyClass(
"anyValue"
});
之后,我将该类注入另一个类来使用它:
public class AnotherClass(IMyClass xxx){
}
问题在于,根据请求信息在MyClass构造函数上进行了一些配置。问题是我看到MyClass构造函数只在应用程序启动时执行。之后,该类似乎对所有调用使用相同的实例。由于我使用的是Scoped服务,我希望每个请求都有一个新实例,我错了吗?
感谢。
答案 0 :(得分:3)
确定。问题是接收注射的类被作为单身添加到容器中。我刚把它改成了Scoped,一切运转良好。
谢谢!