Autofac IComponentContext vs ILifetimeScope

时间:2017-05-29 10:38:22

标签: c# autofac autofac-configuration

我正在服务中传递IContainer所以我读到传递它并不好,而是只将其用于应用程序的根目录并传递IComponentContext或ILifetimeScope。所以我试图了解哪些应该使用IComponentContext或ILifetimeScope。不明白差异

1 个答案:

答案 0 :(得分:10)

ILifetimeScope扩展了IComponentContext。它添加了一些开始新生命周期范围的方法。如果您需要创建新的生命周期范围,请依赖ILifetimeScope,否则我会建议IComponentContext,这样您就不会请求超出要求的功能。

依赖于任何一个而不是反模式。您的DI感知代码与DI-unaware外部世界之间始终存在边界。例如。 Windows不了解DI,但您的代码依赖于Autofac。在此边界上,您需要使用ILifetimeScopeIComponentContext来弥补这一差距。 但是,如果您可以通过Autofac注入依赖项而不是从IComponentContext检索,那么您应该这是首选选项。