那是我的AutoFac设置:
builder.RegisterType<CachingOuterClass>().SingleInstance(); // Singleton
builder.RegisterType<InnerClassAzureClient>().InstancePerRequest();
此设置如何工作?
public class CachingOuterClass
{
public CachingOuterClass(InnerClassAzureClient innerClassAzureClient)
{
//...
}
}
当缓存外部类被永久保存并实例化后,如何通过api请求传递azure客户端类?
最佳答案
FAQ中对此问题进行了详细说明。回答这里太久了。
它确实涵盖了您的特定问题:
在分析问题相关性链中的注册时,请查看
在其注册的有效期范围内。如果你有一个
组件注册为SingleInstance()但它(可能是间接的)
使用注册为InstancePerRequest()的组件,即
问题。 SingleInstance()组件将获取其依赖项
第一次解决时,永不放手。如果发生在
应用启动或在没有当前线程的后台线程中
请求,您将看到此异常。您可能需要调整一些
组件寿命范围。再说一次,真的很高兴知道
依赖项生存期范围通常可以正常工作。