如何强制Unity创建新实例?

And*_*ark 8 c# wcf design-patterns dependency-injection unity-container

使用Unity Application块,当我们UnityContainer.Resolve<T>() 在WCF上下文中调用方法时,如何强制Unity配置创建对象的新实例?

cuo*_*gle 10

生命周期管理器Unity是你所需要的东西.默认情况下,Unity使用TransientLifetimeManager:

TransientLifetimeManager.对于此生命周期管理器,Unity会为每次调用Resolve或ResolveAll方法创建并返回所请求类型的新实例.默认情况下,此生命周期管理器用于使用RegisterType方法注册的所有类型,除非您指定其他生命周期管理器.

如果您需要使用另一个生命周期管理器,只需在Register方法中指定:

var container = new UnityContainer();
container.RegisterType<IMyType, MyType>(new PerResolveLifetimeManager()); 
Run Code Online (Sandbox Code Playgroud)