2009-09-18 3 views
7

Есть ли способ заставить Unity уничтожить объекты, вложенные в объекты, как часть Teardown?Unity, чтобы избавиться от объекта

Фоном является то, что я работаю над приложением, использующим ASP.NET MVC 2, Unity и WCF. Мы создали нашу собственную фабрику контроллеров MVC, которая использует единицу для создания экземпляра контроллера, а прокси WCF вводятся с использованием атрибута [Dependency] для общедоступных свойств контроллера. В конце жизненного цикла страницы вызывается метод ReleaseController фабрики контроллера, и мы вызываем IUnityContainer.Teardown (theMvcController). В этот момент контроллер настроен так, как ожидалось, но мне также нужно распоряжаться введенными wcf-прокси. (На самом деле мне нужно вызвать Close и/или Abort на них, а не Dispose, но это более поздняя проблема.)

Я мог бы, конечно, переопределить методы Dispose и очистить там прокси, но я не хотите, чтобы контроллеры знали о жизненных циклах инъецируемых интерфейсов или даже о том, что они ссылаются на прокси WCF.

Если мне нужно написать код для этого - какая бы лучшая точка расширения? Я был бы признателен за любой указатель.

ответ

0

Возможный способ обхода является то, что вы могли бы также написать обертку вокруг вашего прокси, которые будут на отчуждать (называемых единством при утилизации экземпляров) вызвать метод Close прокси. Это реальный сценарий для вас?