[英]How can you force Unity to Create a new instance?
使用Unity Application块,当我们在WCF上下文中调用UnityContainer.Resolve<T>()
方法时,如何强制Unity配置创建对象的新实例?
Unity
Lifetime Manager就是您所需要的。 默认情况下,Unity使用TransientLifetimeManager
:
TransientLifetimeManager。 对于此生命周期管理器,Unity会为每次调用Resolve或ResolveAll方法创建并返回所请求类型的新实例。 默认情况下,此生命周期管理器用于使用RegisterType方法注册的所有类型,除非您指定其他生命周期管理器。
如果您需要使用另一个生命周期管理器,只需在Register
方法中指定:
var container = new UnityContainer();
container.RegisterType<IMyType, MyType>(new PerResolveLifetimeManager());
在没有a LifetimeManager
情况下使用RegisterType
应该在每次注入时注入该类型的新实例
来自MSDN :
如果未指定生命周期的值,则会为瞬态生存期注册该类型,这意味着将在每次调用Resolve时创建新实例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.