c# - unity injectionconstructor vs injectionfactory 懒惰
问题描述
我有这样的注册:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionConstructor(Container.ResolveAll<ITYPE>())); <---
什么时候Container.ResolveAll<ITYPE>()
会发生?在注册期间还是第一次打电话时?
InjectionConstructor
vs之间有主要区别InjectionFactory
吗?
解决方案
什么时候
Container.ResolveAll<ITYPE>()
会发生?在注册期间还是第一次打电话时?
在注册时,即当您调用RegisterType
并传递InjectionConstructor
给它时。Container.ResolveAll<ITYPE>()
在InjectionConstructor
初始化和RegisterType
调用方法之前调用。
AnInjectionFactory
接受一个工厂,该工厂Func<IUnityContainer, object>
在从容器中解析对象时对其进行初始化:
Container.RegisterType<SOMETYPE>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => c.ResolveAll<ITYPE>()));
因此,使用 an InjectionConstructor
, an object
(ITYPE
在这种情况下为 an )在注册时创建,使用InjectionFactory
a Func<IUnityContainer, object>
(在这种情况下实现返回 an ITYPE
)在注册时创建。
推荐阅读
- c# - Angular 中的 HTTP 响应提供 200 但从未到达服务器
- ios - iOS模拟器中出现强密码自动填充
- apache - 来自 localhost 的 Apache httpd 重定向在 Docker 中不起作用
- reporting-services - 如果表格中没有指定报告日期的数据,则不发送报告
- java - 在运行时访问 JBoss 池统计信息
- go - 如果代码未托管在 Internet 上,如何导入包
- c - 写入路径期间的访问冲突 [结构数组]
- r - 是否可以从两个堆叠的集成模型制作一个堆叠的集成模型?
- docker - 相当于带有 docker-for-desktop Kubernetes 节点的“minikube ssh”
- deep-learning - 从 github 导入 Matterport 的 Mask-RCNN 模型 - 错误:ZipImportError: bad local file header