2009-09-18 22 views
7

Czy istnieje sposób, aby Unity zrzekła obiektów wstrzykniętych w posiadanie w ramach Teardown?Jedność, aby pozbyć się obiektu

Podsumowując, pracuję nad aplikacją wykorzystującą ASP.NET MVC 2, Unity i WCF. Napisaliśmy własną fabrykę kontrolerów MVC, która używa jedności do utworzenia instancji kontrolera, a proxy WCF są wstrzykiwane za pomocą atrybutu [Dependency] w publicznych właściwościach kontrolera. Pod koniec cyklu życia strony jest wywoływana metoda ReleaseController fabryki kontrolerów i nazywamy IUnityContainer.Teardown (theMvcController). W tym momencie kontroler jest usuwany zgodnie z oczekiwaniami, ale muszę również pozbyć się wstrzykiwanych proxy wcf. (Właściwie to muszę wywołać Close i/lub Abort na nich, a nie Dispose, ale to jest późniejszy problem.)

Mogę oczywiście zastąpić metody Displays kontrolerów i wyczyścić tam proxy, ale ja nie chcą, aby kontrolerzy musieli wiedzieć o cyklach życia wtryśniętych interfejsów lub nawet o tym, że odnoszą się one do serwerów proxy WCF.

Jeśli muszę napisać kod samodzielnie - jaki byłby najlepszy punkt rozszerzenia? Byłbym wdzięczny za dowolny wskaźnik.

Odpowiedz

0

Możliwe obejście jest to, że można również napisać otoki wokół proxy, które będą na Dispose (zwanych przez Unity podczas usuwania instancji) wywołać metodę Close pełnomocnika. Czy to dla ciebie opłacalny scenariusz?

Powiązane problemy