Замок Виндзор: подавить исключения, брошенные Решением()

При разрешении компонента, который контейнер Windsor не может найти, генерируется исключение.

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

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

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

Ремко

Ответ 1

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

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

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

return null;