unity injectionconstructor vs injectionfactory 惰性

unity injectionconstructor vs injectionfactory laziness

我是这样注册的:

Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Container.ResolveAll<ITYPE>())); <---

什么时候Container.ResolveAll<ITYPE>()会发生?在注册期间还是第一次打电话时?

InjectionConstructorInjectionFactory 之间有重大区别吗?

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>()));

因此在注册时使用 InjectionConstructorobject(在本例中为 ITYPE)并使用 InjectionFactory 创建 Func<IUnityContainer, object>( return 在这种情况下实现 ITYPE)在注册时创建。