Как определить, является ли компонент разрешимым из реализации IHandlersFilter - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь написать реализацию Castle Windsor v3 IHandlersFilter, которая отфильтровывает обработчики, которые не могут быть разрешены. Это попытка по желанию восстановить старое (до замка 3) поведение ResolveAll ( Как вернуться к старому поведению CollectionResolver в Замке 3? )

Мой вопрос из метода SelectHandlers, каков наилучший способ (если таковой имеется), чтобы определить, какой из входных IHandlers является разрешимым? Я экспериментировал с методом IHandler.CanResolve, но он принимает параметры, которые немного сложнее, чем я обычно имею дело, поэтому я не уверен, как правильно использовать метод.

1 Ответ

1 голос
/ 21 декабря 2011

Вы можете проверить handler.CurrentState == HandlerState.Valid

Однако учтите, что это основано на том, что Виндзор может определять статически, поэтому ответ не всегда может быть точным на 100% (например, некоторые компоненты могут иметь динамические зависимости, поэтому ониздесь будет отображаться как неразрешимая, но вы сможете успешно разрешить их при попытке).

...