那是我的AutoFac设置:

  builder.RegisterType<CachingOuterClass>().SingleInstance(); // Singleton
  builder.RegisterType<InnerClassAzureClient>().InstancePerRequest();


此设置如何工作?

public class CachingOuterClass
{
   public CachingOuterClass(InnerClassAzureClient innerClassAzureClient)
  {
      //...
  }
}


当缓存外部类被永久保存并实例化后,如何通过api请求传递azure客户端类?

最佳答案

FAQ中对此问题进行了详细说明。回答这里太久了。

它确实涵盖了您的特定问题:


  在分析问题相关性链中的注册时,请查看
  在其注册的有效期范围内。如果你有一个
  组件注册为SingleInstance()但它(可能是间接的)
  使用注册为InstancePerRequest()的组件,即
  问题。 SingleInstance()组件将获取其依赖项
  第一次解决时,永不放手。如果发生在
  应用启动或在没有当前线程的后台线程中
  请求,您将看到此异常。您可能需要调整一些
  组件寿命范围。再说一次,真的很高兴知道
  依赖项生存期范围通常可以正常工作。

09-25 19:50