unity injectionconstructor vs injectionfactory 惰性
unity injectionconstructor vs injectionfactory laziness
我是这样注册的:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Container.ResolveAll<ITYPE>())); <---
什么时候Container.ResolveAll<ITYPE>()
会发生?在注册期间还是第一次打电话时?
InjectionConstructor
与 InjectionFactory
之间有重大区别吗?
When Container.ResolveAll<ITYPE>()
will happen? During registration or rather when first time called?
注册时,即当您调用 RegisterType
并将 InjectionConstructor
传递给它时。在 InjectionConstructor
初始化和调用 RegisterType
方法之前调用 Container.ResolveAll<ITYPE>()
。
一个 InjectionFactory
接受一个工厂 Func<IUnityContainer, object>
,它在从容器解析对象时初始化对象:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => c.ResolveAll<ITYPE>()));
因此在注册时使用 InjectionConstructor
、object
(在本例中为 ITYPE
)并使用 InjectionFactory
创建 Func<IUnityContainer, object>
( return 在这种情况下实现 ITYPE
)在注册时创建。
我是这样注册的:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Container.ResolveAll<ITYPE>())); <---
什么时候Container.ResolveAll<ITYPE>()
会发生?在注册期间还是第一次打电话时?
InjectionConstructor
与 InjectionFactory
之间有重大区别吗?
When
Container.ResolveAll<ITYPE>()
will happen? During registration or rather when first time called?
注册时,即当您调用 RegisterType
并将 InjectionConstructor
传递给它时。在 InjectionConstructor
初始化和调用 RegisterType
方法之前调用 Container.ResolveAll<ITYPE>()
。
一个 InjectionFactory
接受一个工厂 Func<IUnityContainer, object>
,它在从容器解析对象时初始化对象:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => c.ResolveAll<ITYPE>()));
因此在注册时使用 InjectionConstructor
、object
(在本例中为 ITYPE
)并使用 InjectionFactory
创建 Func<IUnityContainer, object>
( return 在这种情况下实现 ITYPE
)在注册时创建。