16

複数のコンストラクターが存在する場合、Castle Windsor はどのコンストラクターを解決するかをどのように決定しますか?

4

2 に答える 2

24

利用可能なすべてのコンストラクターが候補としてモデル化され、基本的にそれらの間でコンテストが実行されます。

コンストラクターの各パラメーターは、満たされるか満たされない依存関係を表します。コンストラクタ候補ごとに、すべての依存関係が分析されます。

依存関係が満たされる場合、それは候補の 2 つのポイントです。満足できない場合は、候補から 2 点減点されます。

最も多くのポイントを持つコンストラクタ候補が勝ち、コンポーネントをインスタンス化するために選択されます。

このアルゴリズムのコードはこちらです。

于 2009-09-04T03:54:09.933 に答える
2

Castle Windsor は、依存関係を解決できるパラメーターが最も多いコンストラクターを使用します。

Windsor が解決できるパラメーターの数が同じである 2 つのコンストラクターがある場合、以前の動作は一見恣意的なものでしたが、修正された可能性があります。

Krzysztof Kozmic によるこの投稿を参照してください。

于 2012-07-16T17:16:47.527 に答える