C#.NETプラグインフレームワーク

2020-03-28 c# .net plugins prism mef

私はC#でプラグインベースのアプリケーションに取り組んでいます。 Managed Extensibility Framework(MEF)に出くわしましたが、これは時代遅れであり、サポートはPrismやその他のフレームワークから外されています。

.NET FrameworkのMEFに代わるものはありますか?プラグインに関する多くの情報はかなり古く、古いものです。

ありがとう

Answers

MEFは依存性注入コンテナではないため、削除されました。だからどこを見ればいいの?

  • Unityコンテナー(Unityゲーム開発フレームワークと混同しないでください)は、Prism開発者の間で非常に人気のあるコンテナーであり、Brianは何年も使用しています。
  • DryIocは過去数年間非常に人気があり、非常に高速な代替手段であり、そのパフォーマンスと優れたAPIにより、Unityの長期ファンの多くを変えてきました。
  • Ninjectは今のところWPFでもサポートされています。とはいえ、これは将来変更される可能性があります。プロジェクトは死んでいる兆しを見せています。彼らは2年以上リリースがありません、それは特に速くない、またはPrism Developersによって広く使用されていません。
  • BYOC(独自のコンテナを持参)... Prism 7は、依存性注入の完全な抽象化を導入しました。つまり、使用するコンテナがある場合は、必要なコンテナにIContainerExtensionを実装して、それをプロジェクトに取り込むことができます。 WPF開発のための注意あなたはまだ現在WPFで使用されるのServiceLocatorにそのコンテナを結びつける必要があるだろう。詳細については、 「サポートされていない」DIコンテナの使用に関するこのブログ投稿を参照してください。

.NET FrameworkのMEFに代わるものはありますか?

MEFはプラグインフレームワークとして完全に問題なく、他の場所を探す必要はありません。

ただし、依存関係注入コンテナーとして使用しないでください(Danの回答を参照)。

Related