46

私は依存性注入について検索しており、いくつかの記事を読んでいます。しかし、まだ MEF と他の IoC の違いを見つけることができません。私の質問は次のとおりです。どの状況で MEF または IoC コンテナーを使用することをお勧めしますか?

(WPF と Silverlight) またはデスクトップ アプリケーションの PRISM で MEF を使用するのが良いのはなぜですか?

一方、Web アプリケーションでは IoC コンテナーを使用します。

では、どの依存関係手法を使用する必要があるかを決定する基準は何ですか?

私は記事http://devlicio.us/blogs/casey/archive/2009/12/18/what-is-the-difference-between-an-ioc-container-and-mef.aspx を見てきましたが、私は何も特定できませんでした。

4

2 に答える 2

41

最終的に、MEF と IoC コンテナーについての結論は次のとおりです。

MEF は、未知の型またはプラグイン ベースのアーキテクチャを処理する必要がある場合に使用することをお勧めします。

IoC コンテナーは、既知の型で使用することをお勧めします。

さらに、MEF は依存性注入のアーキテクチャ ソリューションです。

一方、IoC コンテナーは依存性注入のためのコードレベルのソリューションです。

IoC コンテナーは、クラスのインスタンスを生成する依存性注入手法にすぎず、それらのクラスのコンストラクターが他のクラスのオブジェクトを必要とする場合、IoC は必要なオブジェクトも注入します。しかし、MEF は依存関係の注入だけではありません。ただし、MEF は依存性注入に IoC ベースのアプローチも使用しますが、MEF は依存性注入以外にも多くのことを行います。

MEF には 2 つのコンポーネントがあります。

  1. カタログ: 拡張機能の発見を担当

  2. コンテナ: 実行中のアプリケーションに拡張機能をロードする機能を提供します

MEF は単なる依存性注入手法ではありません。アプリケーションにプラグインベースのアーキテクチャが必要な場合に使用されますが、同時に MEF は依存性注入に IoC ベースのアプローチを使用します。

これについては、もっと多くの人がコメントしてくれることを期待しています。

于 2013-03-25T08:29:34.707 に答える