2009-02-24 2 views
10

Quando si risolve un componente che il contenitore Windsor non riesce a trovare, viene generata un'eccezione.Castle Windsor: sopprimere le eccezioni generate da Resolve()

StructureMap ha un metodo TryGetInstance, che restituisce null di esso non riesce a trovare il componente richiesto.

Castle Windsor ha qualcosa del genere? O sono costretto a cogliere queste eccezioni (non mi piace, a causa del sovraccarico delle prestazioni di lancio e cattura delle eccezioni).

Grazie in anticipo,

Remco

risposta

12

È possibile controllare se il microkernel ha un'istanza del componente registrato prima di chiamare il metodo Resolve del contenitore di Windsor.

Qualcosa come il seguente dovrebbe funzionare.

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

return null; 
+3

Sì, ma non ha un sovraccarico per Risolvere per nome E tipo. solo uno per nome e uno per Tipo. –

+0

Uomo, stavo cercando questa due ore. Grazie. –