この質問は(特にタイトルの形で)表現するのが難しいと思ったので、ご容赦ください。
さまざまなことを行うために継続的に変更しているアプリケーションがあります。さまざまな機能を管理するには、MEF が適しているようです。大まかに言って、ある種のパイプラインを形成するアプリケーションの 3 つのセクションがあります。
- 取得
- 変身
- 表現
IAcquisition
最も単純な形式では、これらの各段階をインターフェイス (など)として表現できます。問題は、標準よりも豊富なデータを提供する取得コンポーネントを使用したいときに始まります。この豊富なデータを使用するモジュールを設計したいのですが、そこにあることに頼ることはできません。
もちろん、すべてのデータをインターフェース仕様に追加することもできます。例外をスローするか、null 値を返すことで、劣悪なデータ ソースに対処することができました。これは理想とはほど遠いようです。
以前に選択したモジュールと互換性がある場合にのみ、モジュールがユーザーに提供されるように、MEF バインドを 3 段階で行うことをお勧めします。
私の質問:利用可能なインポートのセットを制限するメタデータを指定できますか?
例:
Acquisition1 は BasicData のみを提供
Acquision2 は BasicData と AdvancedData を提供します
Transformation1 には BasicData が必要です
Transformation2 には BasicData と AdvancedData が必要です
取得モジュールが最初に選択されます。
Acquisition1 が選択されている場合は、Transformation 2 を提供しないでください。それ以外の場合は、両方を提供してください。
これは可能ですか?もしそうなら、どのように?