Autofac Singleton和非单身人士在一起

时间:2015-10-02 16:57:19

标签: c# asp.net-web-api autofac

这是我的AutoFac设置:

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

这种设置如何运作?

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

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

1 个答案:

答案 0 :(得分:1)

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

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

  

在分析问题依赖关系链中的注册时,请查看   在他们注册的终生范围内。如果你有   组件注册为SingleInstance()但它(可能间接)   使用注册为InstancePerRequest()的组件,即a   问题。 SingleInstance()组件将获取其依赖项   当它第一次解决,永不放手。如果发生这种情况   app启动或在没有当前的后台线程中   请求,你会看到这个例外。您可能需要调整一些   组件生命周期范围。再一次,知道如何真的很好   依赖生命周期范围一般工作。