6

この質問は(特にタイトルの形で)表現するのが難しいと思ったので、ご容赦ください。

さまざまなことを行うために継続的に変更しているアプリケーションがあります。さまざまな機能を管理するには、MEF が適しているようです。大まかに言って、ある種のパイプラインを形成するアプリケーションの 3 つのセクションがあります。

  1. 取得
  2. 変身
  3. 表現

IAcquisition最も単純な形式では、これらの各段階をインターフェイス (など)として表現できます。問題は、標準よりも豊富なデータを提供する取得コンポーネントを使用したいときに始まります。この豊富なデータを使用するモジュールを設計したいのですが、そこにあることに頼ることはできません。

もちろん、すべてのデータをインターフェース仕様に追加することもできます。例外をスローするか、null 値を返すことで、劣悪なデータ ソースに対処することができました。これは理想とはほど遠いようです。

以前に選択したモジュールと互換性がある場合にのみ、モジュールがユーザーに提供されるように、MEF バインドを 3 段階で行うことをお勧めします。

私の質問:利用可能なインポートのセットを制限するメタデータを指定できますか?

例:

Acquisition1 は BasicData のみを提供

Acquision2 は BasicData と AdvancedData を提供します

Transformation1 には BasicData が必要です

Transformation2 には BasicData と AdvancedData が必要です

取得モジュールが最初に選択されます。

Acquisition1 が選択されている場合は、Transformation 2 を提供しないでください。それ以外の場合は、両方を提供してください。

これは可能ですか?もしそうなら、どのように?

4

1 に答える 1