簡単な背景:
私のチームは、システムに新しい「プロバイダー」を追加するための拡張可能なモデルを提供するために、Microsoft の Managed Extensibility Framework ( MEF ) を使用することにしました。
これにより、新しいサードパーティ プロバイダーを比較的簡単にプラグインできます。
注: MEF を簡単に使用して起動して実行できることに感銘を受けました。
私の質問:
これらのプロバイダーには一般に異なるプロパティが関連付けられているため、実行時にこれらのプロバイダーをシステムにロードするときに、プロバイダーのデータ ストリームとプロパティにアクセスする必要があります。
プロパティが異なるため、上記のプロバイダー プラグインを操作するには、どのようなアプローチを取る必要がありますか? それらはすべて同様の仕事をしていることに注意してください。
私の解決策:
プロバイダーが準拠する必要があるインターフェイスを作成します。これにより、各サードパーティ プロバイダーの周りに「ラッパー」が作成され、各プロバイダーと連携するための一貫したインターフェイス/プログラミング モデルが得られます。
プラグイン = サード パーティのデータ ソース (プロバイダー) + 共通インターフェイスの実装。
+ve: 上記のプラグインには、より複雑なリフレクション ベースのダイナミックな「プラグ」は必要ありません。
-ve: プロバイダーごとにラッパーを作成する必要があります。(関係なく、MEF Export タグを追加する必要があります)
さらに注意:
私にとっては、インターフェイス/ラッパーのアプローチが最も単純ですが、システムに公開できるプロパティを実行時に発見するために、リフレクションを利用する可能性のあるリフレクション ベースのアプローチを調査するように言われました。
私は特定の解決策に賛成しているわけではありませんが、コミュニティの考えを聞くことに興味があります (そのほとんどは私よりも経験豊富です)。
ありがとう。