gpt4 book ai didi

dependency-injection - ContainerControlledLifetimeManager 和 HierarchicalLifetimeManager 之间的主要区别是什么?

转载 作者:行者123 更新时间:2023-12-04 02:01:30 24 4
gpt4 key购买 nike

ContainerControlledLifetimeManager 和 HierarchicalLifetimeManager 之间的一般区别是什么?我知道 ContainerControlledLifetimeManager 代表单例,即 DI 容器将为每种需要依赖的类型创建一个新实例。我阅读了关于 Understanding Lifetime Managers 的有用文章.我将容器创建的实例的哈希码与不同的生命周期管理器进行了比较。如果我使用 ContainerControlledLifetimeManager,我会为每个请求得到相同的实例,但是当我使用 HierarchicalLifetimeManager 时,我得到了不同的哈希码。正如文章中所写,每个子容器都将创建自己的实例。我不完全理解它。 parent 和 child 是否有相同的实例?如果我没有 child 会怎样?我什么时候应该使用这个终身管理器?请你能给我解释一下吗?

最佳答案

ContainerControlledLifetimeManager解析范围为容器生命周期的注册类型的单例实例
HierarchicalLifetimeManager将注册类型的单例实例解析为执行解析的容器的生命周期(但不一定是注册类型的容器)

如果您的应用程序仅使用单个容器,则 HierarchicalLifetimeManager 之间的行为没有区别。和 ContainerControlledLifetimeManager
但是,如果您的应用程序为每个 session /请求创建子容器并使用这些子容器进行解析,那么您可以有效地获得每个 session /请求已注册类型的单例实例

关于dependency-injection - ContainerControlledLifetimeManager 和 HierarchicalLifetimeManager 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com