2009-09-18 12 views
7

¿Hay alguna forma de hacer que Unity elimine objetos de propiedad inyectada como parte del desmontaje?Unidad para deshacerse del objeto

El fondo es que estoy trabajando en una aplicación que utiliza ASP.NET MVC 2, Unity y WCF. Hemos escrito nuestra propia fábrica de controladores MVC que usa la unidad para instanciar el controlador y los proxies WCF se inyectan utilizando el atributo [Dependencia] en las propiedades públicas del controlador. Al final del ciclo de vida de la página, se llama al método ReleaseController de la fábrica del controlador y llamamos a IUnityContainer.Teardown (theMvcController). En ese punto, el controlador está dispuesto como se esperaba, pero también debo desechar los wcf-proxies inyectados. (De hecho tengo que llamar Cerrar y/o Abortar en ellos y no Eliminar, pero ese es un problema posterior.)

Por supuesto, pude anular los métodos de Disposición de los controladores y limpiar los proxies allí, pero no quiere que los controladores tengan que conocer los ciclos de vida de las interfaces inyectadas o incluso que se refieran a los proxies WCF.

Si necesito escribir código para esto, ¿cuál sería el mejor punto de extensión? Agradecería cualquier puntero.

Respuesta

0

Una posible solución es que también se puede escribir una envoltura alrededor de los proxies que en dispose (llamados por la Unidad al desechar los casos) llamar a un método Close del proxy. ¿Es eso un escenario viable para ti?

Cuestiones relacionadas