繁体   English   中英

如何强制Unity创建新实例?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM