コンポーネントをSPIを介して動的にルックアップおよびロードできるようにするJavaのjava.util.ServiceLoaderに類似したものはありますか?
かさばるDIコンテナーや自分で作成するのではなく、インターフェイスのプロバイダーを簡単にプラグインできる.NETの軽量のネイティブ機能を探しています。
更新:Javaのようにネイティブに組み込まれているSPI機能がないため、これは.NETではすぐに利用できないようです。私が求めているものに最も近いので、最初の答えを受け入れました。
コンポーネントをSPIを介して動的にルックアップおよびロードできるようにするJavaのjava.util.ServiceLoaderに類似したものはありますか?
かさばるDIコンテナーや自分で作成するのではなく、インターフェイスのプロバイダーを簡単にプラグインできる.NETの軽量のネイティブ機能を探しています。
更新:Javaのようにネイティブに組み込まれているSPI機能がないため、これは.NETではすぐに利用できないようです。私が求めているものに最も近いので、最初の答えを受け入れました。
@ JeffN825が言ったように、これらは.NETのネイティブコンテナではありません。
とはいえ、かさばるとはどういう意味ですか?たぶん、Service Locatorパターンの主な欠点を参照します。どこにでもコンテナーへの参照があり、かなり侵襲的です。
コンポジションルートパターンを使用すると、コンテナの使用をアプリケーション内の1つの場所に任せることができ、コンテナを使用することによる影響を軽減できます。このようにして、「バルク」を排除します。一度構成し、一度使用すると、忘れてしまいます。
アップデート
あなたのコメントに答える:多くのIoCコンテナには、あなたのニーズを満たすかもしれないある種の自動登録機能があります。たとえば、関連する構造マップのドキュメントページへのリンクは次のとおりです。
次に、IoCコンテナに、実装のさまざまな構成(つまり、実際の実装ではなくスタブ)を使用してさまざまなアセンブリを選択させることができます。