2009-02-24 5 views
10

Beim Auflösen einer Komponente, die der Windsor-Container nicht finden kann, wird eine Ausnahme ausgelöst.Castle Windsor: Unterdrückung von Ausnahmen, die von Resolve() ausgelöst wurden

StructureMap hat eine TryGetInstance-Methode, die null zurückgibt und die angeforderte Komponente nicht finden kann.

Hat Castle Windsor so etwas? Oder bin ich gezwungen, diese Ausnahmen zu erfassen (ich mag das nicht, wegen des Leistungsaufwands beim Werfen und Abfangen von Ausnahmen).

Vielen Dank im Voraus,

Remco

Antwort

12

können Sie überprüfen, ob der Microkernel eine Instanz der Komponente vor dem Aufruf des Resolve Methode des Behälters Windsor registriert hat.

Etwas wie das Folgende sollte funktionieren.

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

return null; 
+3

Ja, aber es hat keine Überlastung zum Auflösen nach Name UND Typ. nur eine für Name und eine für Typ. –

+0

Mann, ich habe diese zwei Stunden gesucht. Vielen Dank. –

Verwandte Themen