2009-02-24 1 views
10

При разрешении компонента, который контейнер Windsor не может найти, выдается исключение.Замок Виндзор: исключение исключений, вызванных Resolve()

StructureMap имеет метод TryGetInstance, который возвращает null из него, не может найти запрошенный компонент.

Есть ли у замка Виндзор что-то вроде этого? Или я вынужден поймать эти исключения (мне это не нравится, из-за накладных расходов на выполнение бросков и ловушек).

Спасибо заранее,

РЕМКО

ответ

12

Вы можете проверить, если микроядра имеют экземпляр компонента, зарегистрированный до вызова метода Resolve контейнера Виндзора.

Что-то вроде следующего должно работать.

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

return null; 
+3

Да, но у него нет перегрузки для разрешения по имени И типа. только один для названия и один для Type. –

+0

Мужчина, я искал это два часа. Благодарю. –

 Смежные вопросы

  • Нет связанных вопросов^_^