2009-05-22 10 views
5

現在、次のアプリケーションではCABまたはMEFを使用しています。イベント仲介が兄弟制御通信のためにどのように処理されるかについて、私はコードプレックス上の例を見ていませんでした。 MEFでの相互制御通信はどのように機能しますか?MEF(Managed Extensibility Framework)と複合UIアプリケーションブロック(CAB)

また、CABフレームワークの追加コンポーネントを提供しているInfragisticsを使用する予定です。 InfragisticsコントロールはMEFにどの程度うまく統合されますか?

全体的に、MEFは厳密に開発、アプリケーションの非常に大きな、15000時間を追求する価値がありますか?

答えて

8

私は間違っているかもしれませんが、私はMEFにどんなイベント仲介もないと思います。これはiocコンテナと同様の一般的な合成エンジンですが、より一般的なプラグインとアプリケーションの拡張性のソリューションを意図しています。一方、CABとPrismはUIコンポーネントで構成された複合アプリケーションを可能にするUIフレームワークです。 UIコンポーネントは相互に通信し、他のUIコンポーネントのアクティビティに応答する必要があるため、基本的なフレームワークはUIコンポーネント間でイベントを発行(pub/sub)するメカニズムを提供する必要があります。

6

MEFとWPFおよびMVVMパターンを使用している場合、通常は、ViewModelクラスとViewクラス(たとえばDataTemplatesなど)がエクスポートされます。ビューはViewModelにバインドされ、依存関係のプロパティとコマンドを使用して前後に通信します。したがって、パートAがパートBと通信する必要がある場合、パートAはパートBのViewModelへの参照をインポートでき、メソッド呼び出しを前後に行うことができます。パートAは、パートBのイベントなどのイベントハンドラも登録できます。

6

MEFにはイベントメカニズムがありませんが、MEFではPrismのイベントアグリゲータを使用できます。私はここにこの記事を投稿しました。

http://codebetter.com/blogs/glenn.block/archive/2009/02/23/event-aggregation-with-mef-with-and-without-eventaggregator.aspx

それが動作する方法は、あなたが基本的にプリズムの複合イベントクラスをエクスポートしています。私はスコットに同意

HTH グレン

2

。 "一般的な" pub/subモデルは興味深いようですが、めったに私はそれを必要としていませんでした。デカップルされたメッセージが必要な場合は、MEFを使用して契約IMessageを定義し、実装をエクスポートして、必要な場所にインポートします。強く型付けされたメッセージの場合は、私が話す必要がある正確な部分をインポートし、直接メッセージします。

関連する問題