0

ContainerControlledLifetimeManager和HierarchicalLifetimeManager之間的一般區別是什麼?我知道ContainerControlledLifetimeManager表示單身,即DI容器將爲每個需要依賴關係的類型創建一個新實例。我讀了關於Understanding Lifetime Managers的有用文章。我將由容器創建的實例的哈希代碼與不同的終生管理者進行了比較。如果我使用ContainerControlledLifetimeManager,每個請求都得到相同的實例,但是當我使用HierarchicalLifetimeManager時,我得到了不同的哈希代碼。正如文章中所寫,每個子容器都會創建它自己的實例。我不完全理解它。父母和孩子是否有相同的實例?如果我沒有孩子會怎麼樣?當我應該使用這個終生管理者?請你能解釋給我嗎?ContainerControlledLifetimeManager和HierarchicalLifetimeManager之間的主要區別是什麼?

回答

-1

ContainerControlledLifetimeManager解析註冊類型的單一實例作用域到容器

HierarchicalLifetimeManager解析註冊類型的單一實例作用域到執行的分辨率容器的壽命(但不是必須地,所述的壽命其中類型登記容器)

如果你的應用程序只利用一個單一的容器,有HierarchicalLifetimeManagerContainerControlledLifetimeManager

之間的行爲沒有什麼區別。然而,我如果您的應用程序爲每個會話/請求創建子容器並解決使用這些子容器,那麼您可以有效地獲得每個會話的註冊類型的單例實例/請求

相關問題