У меня есть сценарий, в котором мне нужно знать, может ли определенный тип в настоящее время быть разрешен контейнером Windsor. Проблема в том, что этот тип имеет зависимости. Итак, у меня есть класс ProductRepository
, который реализует IRefDataRepository
и зависит от IProductDataProvider
. Мне нужно знать, могу ли я успешно разрешить IRefDataRepository
из контейнера.
Я попытался использовать IKernel.HasComponent(typeof(IRefDataRepository))
IKernel.GetAssignableHandlers(typeof(IRefDataRepository))
, оба из которых возвращают ProductRepository
, даже если IProductDataProvider
не зарегистрировано. (Так IWindsorContainer.Resolve(typeof(IRefDataRepository))
бросит)
Мое текущее решение - написать метод расширения, который фактически пытается разрешить тип (через IWindsorContainer.Resolve(IRefDataRepository)
), перехватывает исключение и возвращает true, если тип разрешается, и false в противном случае. Но мне интересно, есть ли лучший способ.