C# 如何强制Unity创建新实例?

C# 如何强制Unity创建新实例?,c#,wcf,design-patterns,dependency-injection,unity-container,C#,Wcf,Design Patterns,Dependency Injection,Unity Container,使用Unity应用程序块当我们在WCF上下文中调用UnityContainer.Resolve()方法时,如何强制Unity配置创建对象的新实例?使用RegisterType而不使用LifetimeManager应该在每次注入该类型的新实例时注入该类型的新实例 发件人: 如果未指定生存期的值,则将注册该类型 对于瞬态生命周期,这意味着将创建一个新实例 在每次调用时创建以解决 在Unity中是您所需要的一切。默认情况下,Unity使用TransientLifetimeManager: 临时生命管理

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

使用
RegisterType
而不使用
LifetimeManager
应该在每次注入该类型的新实例时注入该类型的新实例

发件人:

如果未指定生存期的值,则将注册该类型 对于瞬态生命周期,这意味着将创建一个新实例 在每次调用时创建以解决

Unity中
是您所需要的一切。默认情况下,Unity使用TransientLifetimeManager:

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

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

var container = new UnityContainer();
container.RegisterType<IMyType, MyType>(new PerResolveLifetimeManager()); 
var container=newunitycontainer();
RegisterType(新的PerResolveLifetimeManager());

这是可行的,但现在当我在我的WCF应用程序中实现这一点时,它没有处理任何对象、任何想法?@andycark clark-clark-我们还使用Unity 2.1.505、EF 4.3.1和存储库模式,在WCF服务层下,也使用配置设置。一个区别可能是,我们正在使用WCF服务行为来引导。您使用的是哪种终身管理器?另外,您想处置未管理的对象?我没有配置生存期管理器,我需要处置我的存储库对象。您为什么知道您的存储库对象没有处置?如果我手动更新数据库,它不会反映在实体框架中,另外,我在Dispose方法中包含了一行代码,用于记录在文本文件中调用了该方法且未创建日志的事实。我明白了,Unity不支持为您调用Dispose,它只释放引用,并让GC收集。大多数IOC都需要手动处理