我在服务中传递IContainer,所以我读到传递它不是很好,而是仅将其用于应用程序的根目录并传递IComponentContext或ILifetimeScope。因此,我试图了解应该使用IComponentContext还是ILifetimeScope。不明白区别

最佳答案

ILifetimeScope扩展了IComponentContext。它添加了一些方法来开始新的生命周期作用域。如果您需要创建一个新的生存期范围,那么请依赖ILifetimeScope,否则我建议IComponentContext,这样您就不需要更多的功能了。

依赖于任何一个都不是反模式。您的DI意识代码与DI意识外部世界之间始终存在界限。例如。 Windows不了解DI,但是您的代码取决于Autofac。在此边界上,您需要使用ILifetimeScopeIComponentContext弥合此差距。
但是,如果可以通过Autofac注入(inject)依赖项,而不是从IComponentContext中检索依赖项,则应该这样做,因为这是首选选项。

关于c# - Autofac IComponentContext与ILifetimeScope,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44240431/

10-17 02:37