2009-02-24 19 views
10

Podczas rozwiązywania składnika, którego kontener Windsor nie może znaleźć, zostanie zgłoszony wyjątek.Castle Windsor: tłumi wyjątki zgłaszane przez Resolve()

StructureMap ma metodę TryGetInstance, która zwraca wartość null nie może znaleźć żądanego komponentu.

Czy Castle Windsor ma coś takiego? Czy jestem zmuszony złapać te wyjątki (nie podoba mi się to, ze względu na wydajność narzucania i łapania wyjątków).

Dzięki z góry,

Remco

Odpowiedz

12

Można sprawdzić czy mikrojądro ma instancję komponentu zarejestrowanego przed wywołaniem metody determinacji pojemnika Windsor.

Powinno zadziałać coś takiego.

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

return null; 
+3

Tak, ale nie ma przeciążenia do rozstrzygnięcia według nazwy typu AND. tylko jedna dla nazwy i jedna dla Typ. –

+0

Człowieku, szukałem tych dwóch godzin. Dzięki. –