2010-11-22 4 views
16

AggregateCatalogとは何ですか? new AggregateCatalog()を作成するとどういう意味ですか?カタログにアセンブリを追加すると、たとえばcatalog.Catalogs.Add(new AssemblyCatalog(someAssembly))などの意味はどういう意味ですか?アセンブリ以外に、カタログに何を追加できますか?これに関する一般的な知識も役立ちます(私は全部の騒動です)MEFのAggregateCatalogとは何ですか?

答えて

16

AggregateCatalogは、基本的に複数の拡張カタログを収集することを可能にします。 new AggregateCatalog()を呼び出すと、複数の部分を含むことができるComposablePartCatalogの複数のインスタンスを含むことができる新しいカタログコレクション(必ずしもデータが入っている必要はない)をインスタンス化しています。

複数のセットから部品を収集するのに役立つクラスです。

アセンブリは、呼び出すアプリケーションに部品を押し入れる単なる方法です。既存のアセンブリの内部から直接パーツを渡すことができます。

カタログの詳細については、thisをお読みください。

+1

これに相当する団体はありますか? – Vaccano

+0

それをModuleCatalogとは対照的に考えてください。彼らは同じことをするように見えます。 –

4

Mefには小さな学習曲線しかありません。mef.codeplex.comで少なくとも1回はドキュメントを読んでください。あなたが本当に時間をかけられたら、スクリーンキャストを試してみてください。

カタログは、輸出部品(注入対象オブジェクト)またはインポートが必要な部品(注入オブジェクトが必要な部品)の辞書です。カタログには複数の方法で集計することができます(したがってthe diff Catalog derivations) - からディレクトリ(ディレクトリ内のすべてのasm)または特定のアセンブリ。

次に、複合カタログを作成することができます。 DirAおよびDirBにあるこの特定のアセンブリからエクスポートされたすべてのオブジェクトを含む単一の辞書を作成するとします。この場合、個々のカタログを作成し、次にそれらをマージする複合カタログを作成することができます。これで、インポート/エクスポートを依頼するために、このマージされた辞書をコード内で消費します。

関連する問題