那是我的AutoFac设置:
builder.RegisterType<CachingOuterClass>().SingleInstance(); // Singleton
builder.RegisterType<InnerClassAzureClient>().InstancePerRequest();
此设置如何工作?
public class CachingOuterClass
{
public CachingOuterClass(InnerClassAzureClient innerClassAzureClient)
{
//...
}
}
当缓存外部类被永久保存并实例化后,如何通过api请求传递azure客户端类?
FAQ中对此问题进行了详细说明。回答这里太久了。
它确实涵盖了您的特定问题:
在分析问题相关性链中的注册时,请查看其注册的生存期范围。如果您有一个注册为SingleInstance()的组件,但它(可能是间接地)消耗了注册为InstancePerRequest()的组件,那就是一个问题。首次解析时,SingleInstance()组件将抓住其依赖关系,并且永不松手。如果在应用启动时或在没有当前请求的后台线程中发生这种情况,您将看到此异常。您可能需要调整某些组件的寿命范围。同样,了解依赖项生存期作用域通常如何工作真的很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句