複数のコンストラクターが存在する場合、Castle Windsor はどのコンストラクターを解決するかをどのように決定しますか?
2981 次
2 に答える
24
利用可能なすべてのコンストラクターが候補としてモデル化され、基本的にそれらの間でコンテストが実行されます。
コンストラクターの各パラメーターは、満たされるか満たされない依存関係を表します。コンストラクタ候補ごとに、すべての依存関係が分析されます。
依存関係が満たされる場合、それは候補の 2 つのポイントです。満足できない場合は、候補から 2 点減点されます。
最も多くのポイントを持つコンストラクタ候補が勝ち、コンポーネントをインスタンス化するために選択されます。
このアルゴリズムのコードはこちらです。
于 2009-09-04T03:54:09.933 に答える
2
Castle Windsor は、依存関係を解決できるパラメーターが最も多いコンストラクターを使用します。
Windsor が解決できるパラメーターの数が同じである 2 つのコンストラクターがある場合、以前の動作は一見恣意的なものでしたが、修正された可能性があります。
Krzysztof Kozmic によるこの投稿を参照してください。
于 2012-07-16T17:16:47.527 に答える