C# Autofac单例和非单例

C# Autofac单例和非单例,c#,asp.net-web-api,autofac,C#,Asp.net Web Api,Autofac,这是我的AutoFac设置: builder.RegisterType<CachingOuterClass>().SingleInstance(); // Singleton builder.RegisterType<InnerClassAzureClient>().InstancePerRequest(); 当缓存外部类被永久保存并实例化后,azure客户端类如何通过api请求传递?中有关于此问题的详细说明。这太长了,不能放在这里作为答案 它确实涵盖了您的具体

这是我的AutoFac设置:

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

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

中有关于此问题的详细说明。这太长了,不能放在这里作为答案

它确实涵盖了您的具体问题:

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

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