这是我的AutoFac设置:
builder.RegisterType<CachingOuterClass>().SingleInstance(); // Singleton
builder.RegisterType<InnerClassAzureClient>().InstancePerRequest();
这种设置如何运作?
public class CachingOuterClass
{
public CachingOuterClass(InnerClassAzureClient innerClassAzureClient)
{
//...
}
}
当永久保存缓存外部类并且一旦实例化后,如何通过api请求传递azure客户端类?
答案 0 :(得分:1)
FAQ中有关于此问题的详细说明。把它放在这里作为答案太长了。
它确实涵盖了您的具体问题:
在分析问题依赖关系链中的注册时,请查看 在他们注册的终生范围内。如果你有 组件注册为SingleInstance()但它(可能间接) 使用注册为InstancePerRequest()的组件,即a 问题。 SingleInstance()组件将获取其依赖项 当它第一次解决,永不放手。如果发生这种情况 app启动或在没有当前的后台线程中 请求,你会看到这个例外。您可能需要调整一些 组件生命周期范围。再一次,知道如何真的很好 依赖生命周期范围一般工作。