[英]unity injectionconstructor vs injectionfactory laziness
我有這樣的注冊:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Container.ResolveAll<ITYPE>())); <---
Container.ResolveAll<ITYPE>()
會發生? 在注冊時還是第一次打電話時?
InjectionConstructor
與InjectionFactory
之間有什么主要區別嗎?
Container.ResolveAll<ITYPE>()
會發生? 在注冊時還是第一次打電話時?
在注冊時,即當您調用RegisterType
並將InjectionConstructor
傳遞給它時。 Container.ResolveAll<ITYPE>()
在InjectionConstructor
初始化和RegisterType
方法被調用之前被調用。
InjectionFactory
接受一個工廠Func<IUnityContainer, object>
,它在從容器解析對象時初始化對象:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => c.ResolveAll<ITYPE>()));
因此,使用InjectionConstructor
,在注冊時創建一個object
(在本例中為ITYPE
),並使用InjectionFactory
在注冊時創建Func<IUnityContainer, object>
(在本例中實現為返回ITYPE
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.