67

MEF は別の IoC コンテナーではないとブロゴスフィアや Microsoft 自身によって言われています。

いいけどなんで?私には同じように思えます。Unity やCastle Windsorほど良くはないかもしれませんが、それでも定義には合っていますね。

MEF が Unity や Castle Windsor のような IoC コンテナーではないのはなぜですか?

4

2 に答える 2

10

MEF には可能性がありますが、DI コンテナーとしては次の点が欠けています。

  1. 構成としてのコード
  2. 自動登録
  3. XML 構成 (私にとってはそれほど重要ではありません)
  4. カスタム ライフタイム
  5. 傍受

それらはかなり重要です。

ライフスタイルの場合、次のものが欠けています。

  1. グラフごと
  2. Web リクエストのコンテキスト
  3. スレッド コンテキスト
  4. セッション コンテキスト
  5. プールされた
  6. 範囲指定
  7. カスタム参照

参考文献: - Mark Seemann の著書「Dependency Injection in .NET」

于 2013-07-05T23:22:04.063 に答える
8

私の世界では、DI は、オブジェクト構成、ライフタイム管理、傍受という 3 つの次元に基づいています。これは、Unity、Castle Windsor、Ninject などの他の本格的な DI コンテナーが促進するものです。MEF は、1 つの次元であるオブジェクト構成のみをサポートします。これは非常にうまく機能していますが、残りの 2 つの次元は MEF ではサポートされていません。

于 2012-10-05T08:09:09.700 に答える