私は新しいプラグイン ローダー アプリケーション フレームワークを開発しており、MEF の利用可能なすべてのバリアントを読んでいます。最も将来性のある柔軟なものは、NuGet からSystem.Composition
.
残念ながら、すべてではないにしてもオンラインのほとんどのチュートリアルは MEF1 用に書かれています。つまり、ディレクトリ内の DLL を明示的に見つけてそれを MEF に渡すなどして作成されSystem.ComponentModel.Composition
た を使用します。AssemblyCatalog
CompositionContainer
MEF2 にはこのオブジェクトがないため、MEF2 がそのコンポーネントをどこで見つけるかはまだ不明です。実行時にそれらを見つけることはできませんか (これは、プラグインをロードするアプリケーションへの参照として各プラグインを追加する必要があることを意味します)? それは私を奇妙に思うでしょう。
どのアセンブリがどこからロードされるかを指定する方法(そして、これをどのようにセットアップする必要があるか)について、誰かが光を当てることができますかSystem.Composition
?MEF2 が PCL を念頭に置いて設計されていることは理解していますが (私はデスクトップ アプリを作成しています)、この将来の移植性のために支払うセットアップ費用が少なければ、私はそれで十分です。System.ComponentModel.Composition
そうでない場合は、私が把握できるものを使用することに屈します。