如何确定组件是否可从IHandlersFilter实现中解析

时间:2011-12-19 21:27:10

标签: castle-windsor

我正在尝试编写Castle Windsor v3 IHandlersFilter实现,它将过滤掉无法解析的处理程序。这是为了有选择地恢复ResolveAll(How to revert to old CollectionResolver behavior in Castle 3?)的旧(pre-castle 3)行为

我的问题是,从SelectHandlers方法中,确定哪些输入IHandler可解析的最佳方法(如果有的话)是什么?我已经尝试了IHandler.CanResolve方法,但它采用的参数比我通常处理的要高一些,所以我不确定如何正确使用该方法。

1 个答案:

答案 0 :(得分:1)

您可以查看handler.CurrentState == HandlerState.Valid

但请注意,这是基于Windsor可以静态确定的内容,因此答案可能并不总是100%准确(例如某些组件可能具有动态依赖性,因此它们在此处显示为无法解析,但您将能够尝试时成功解决它们。