Autofac单例和非单例一起

伊丽莎白

那是我的AutoFac设置:

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

此设置如何工作?

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

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

伊恩·默瑟(Ian Mercer)

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

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

在分析问题相关性链中的注册时,请查看其注册的生存期范围。如果您有一个注册为SingleInstance()的组件,但它(可能是间接地)消耗了注册为InstancePerRequest()的组件,那就是一个问题。首次解析时,SingleInstance()组件将抓住其依赖关系,并且永不松手。如果在应用启动时或在没有当前请求的后台线程中发生这种情况,您将看到此异常。您可能需要调整某些组件的寿命范围。同样,了解依赖项生存期作用域通常如何工作真的很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章