(複数登録コンポーネントと解決)本IOC現象の背後にある理由は何ですか:(C#ウィンザー)のようなシナリオが与えられたとき、IOCのための標準的なアプローチのように思える
container.AddComponent<ILogger, HttpLogger>();
container.AddComponent<ILogger, SmtpLogger>();
var logger = container.Resolve<ILogger>();
コンポーネントを解決するときことだろう最初に登録されたILogger(この場合はHttpLogger)が唯一の解決候補になるので、iocはすべての依存関係を解決できると信じるところで '最も頑丈な'コンストラクタを見つけます。
しかし、iocが最初のロガーの依存関係を解決できない可能性があります。そのため、解決の問題が返されます.iocが試してみた場合、SmtpLoggerが解決された可能性があります。
最初に登録したサービスだけを候補として使用する理由は何ですか?どちらのタイプの不確実性が議論であると思われますが、とにかくどのコンストラクタを使用するのかをiocに任せています。
なぜ、該当するすべてのタイプのすべてのコンストラクタを選んで、最もファクトなコンストラクタから(実際のタイプには無関係に)解決しようとしないのですか?
これは本当に明白な答えがあるかもしれませんが、正直なところ私はそれを知らないのです。
ありがとうございます。 Stephen。
こんにちは。あなたの例で使用しているコーディング言語は何ですか? – KLE
例の言語はC#で、コンテナの例はCastle Windsorでした。 – meandmycode