このMSDNの記事http://msdn.microsoft.com/en-us/library/dd460648.aspxを読むと、MEFはアセンブリに強く依存していないという主張があります。コントラクトが文字列であっても、MEFは文字列ごとに解決され、次にタイプごとに解決されるため、これが何を意味するのか正確にはわかりません。したがって、ホストアセンブリと拡張アセンブリの両方にコントラクトアセンブリへの参照が必要です。これは難しい依存関係ではありませんか?
Managed Extensibility FrameworkまたはMEFは、軽量で拡張可能なアプリケーションを作成するためのライブラリです。これにより、アプリケーション開発者は、構成を必要とせずに拡張機能を検出して使用できます。また、拡張機能の開発者はコードを簡単にカプセル化し、脆弱なハード依存関係を回避できます。MEFを使用すると、拡張機能をアプリケーション内だけでなく、アプリケーション間でも再利用できます。
最後に、コンポーネント開発者は、実装するインターフェイスが含まれているアセンブリへの強い依存関係を受け入れる必要があります。これにより、コンポーネントを複数のアプリケーションで使用することが困難になり、コンポーネントのテストフレームワークを作成するときに問題が発生する可能性もあります。
MEFモデルは、特定のアプリケーションアセンブリに強く依存する必要がないため、アプリケーション間で拡張機能を再利用できます。これにより、アプリケーションに関係なく、拡張コンポーネントをテストするためのテストハーネスを簡単に開発できます。
誰かが私にこれを説明できますか?たぶん私はハードな依存関係が実際に何であるかを誤解していますか?