在WCF上下文中,如何使用Unity应用程序块强制Unity配置在调用UnityContainer.Resolve<T>()
方法时创建一个对象的新实例?
在WCF上下文中,如何使用Unity应用程序块强制Unity配置在调用UnityContainer.Resolve<T>()
方法时创建一个对象的新实例?
Unity中的Lifetime Manager
是您所需的一切。默认情况下,Unity使用TransientLifetimeManager
:
TransientLifetimeManager。对于此生命周期管理器,Unity为每次调用Resolve或ResolveAll方法创建并返回请求类型的新实例。除非指定其他生命周期管理器,否则此生命周期管理器默认用于使用RegisterType方法注册的所有类型。
如果需要使用其他生命周期管理器,请在Register
方法中指定:
var container = new UnityContainer();
container.RegisterType<IMyType, MyType>(new PerResolveLifetimeManager());
RegisterType
而没有指定LifetimeManager
,会在每次注入时注入该类型的新实例。