unity-container - 统一处置对象

标签 unity-container ioc-container idisposable wcf-proxy

有没有办法让 Unity 将属性注入(inject)的对象作为 Teardown 的一部分进行处理?

背景是我正在开发一个使用 ASP.NET MVC 2、Unity 和 WCF 的应用程序。我们编写了自己的 MVC Controller 工厂,它使用统一来实例化 Controller ,并使用 Controller 公共(public)属性上的 [Dependency] 属性注入(inject) WCF 代理。在页面生命周期结束时,会调用 Controller 工厂的 ReleaseController 方法,我们调用 IUnityContainer.Teardown(theMvcController)。此时 Controller 已按预期处理,但我还需要处理注入(inject)的 wcf 代理。 (实际上我需要对它们调用 Close 和/或 Abort 而不是 Dispose 但这是后来的问题。)

我当然可以覆盖 Controller 的 Dispose 方法并清理那里的代理,但我不希望 Controller 必须知道注入(inject)接口(interface)的生命周期,甚至它们引用 WCF 代理。

如果我需要自己为此编写代码 - 最好的扩展点是什么?我会很感激任何指针。

最佳答案

我创建了一个统一扩展,它将负责处理由容器在 TearDown 上创建的实例。

http://www.neovolve.com/2010/06/18/unity-extension-for-disposing-build-trees-on-teardown/

关于unity-container - 统一处置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1443515/

相关文章:

c# - 使用 WebAPI 的 Microsoft Unity 依赖注入(inject)

c# - 如何将 System.Web.Cache 传递到我的服务层

c# - 指定要使用的 Unity IoC 容器的构造函数

.net - 适合初学者的 IOC 框架 (.net)?

c# - 使用一次性模式清理 IDispose 成员类

c# - 当我实现使用 HandlerAttribute 的接口(interface)时,是否可以拦截它?

unity-container - 如何隐藏真正的 IoC 容器库?

caSTLe-windsor - 基于基类注册类型

c# - 如果结构可以实现 IDisposable,为什么它们不能有析构函数?

c# - 在 IObservable<T> 接口(interface)中返回 IDisposable 的目的是什么?