2009-02-24 9 views
10

Al resolver un componente que el contenedor Windsor no puede encontrar, se produce una excepción.Castle Windsor: suprime excepciones lanzadas por Resolve()

StructureMap tiene un método TryGetInstance, que devuelve un valor nulo que no puede encontrar el componente solicitado.

¿Castle Windsor tiene algo como esto? O me veo obligado a atrapar estas excepciones (no me gusta eso, debido a la sobrecarga de rendimiento de arrojar y atrapar excepciones).

Gracias de antemano,

Remco

Respuesta

12

Puede comprobar si el microkernel tiene una instancia del componente registrada antes de llamar al método de determinación de los contenedores de Windsor.

Algo como lo siguiente debería funcionar.

if (windsor.Kernel.HasComponent(componentType)) 
{ 
    return windsor.Resolve(componentType); 
} 

return null; 
+3

Sí, pero no tiene una sobrecarga para resolver por nombre Y tipo. solo uno para nombre y uno para Tipo. –

+0

Hombre, estaba buscando estas dos horas. Gracias. –

Cuestiones relacionadas