16

当存在多个构造函数时,Castle Windsor 如何确定要解析哪个构造函数?

4

2 回答 2

24

所有可用的构造函数都被建模为候选者,并且基本上在它们之间进行竞赛。

构造函数中的每个参数代表一个可以满足或不满足的依赖项。对于每个候选构造函数,都会分析所有依赖项。

如果可以满足依赖关系,那么候选人将获得两分。如果不能满足,则从候选人中减去两分。

得分最多的构造函数候选者获胜并被选择实例化组件。

这个算法的代码在这里

于 2009-09-04T03:54:09.933 回答
2

Castle Windsor 将使用具有最多可以解决其依赖关系的参数的构造函数。

当 Windsor 可以解析具有相同数量参数的两个构造函数时,该行为过去看似任意,但可能已被修复。

请参阅Krzysztof Kozmic 的这篇文章

于 2012-07-16T17:16:47.527 回答