何AggregateCatalog
ですか?を構築するとき、それはどういう意味new AggregateCatalog()
ですか?カタログにアセンブリを追加するとはどういう意味catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))
ですか?アセンブリ以外に、カタログに何を追加できますか?これに関連する一般的な知識も役に立ちます(私は完全な初心者です)
2 に答える
AggregateCatalog
MEFでは、基本的に複数の拡張カタログを収集できます。を呼び出すとnew AggregateCatalog()
、基本的に、複数のパーツを含むことができるComposablePartCatalogの複数のインスタンスを含むことができる新しいカタログコレクション(必ずしも入力されている必要はありません)をインスタンス化しています。
複数のセットからパーツを収集するのに役立つクラスと考えてください。
アセンブリは、呼び出し元のアプリケーションにパーツをプッシュするための単なる方法です。既存のアセンブリの内部から直接パーツを渡すことができます。
カタログの詳細については、こちらをお読みになることをお勧めします。
Mefの学習曲線はわずかです。少なくとも1回はmef.codeplex.comのドキュメントを参照してください。または、本当に時間に追われている場合は、スクリーンキャストを試してください。
カタログは、エクスポートされたパーツ(注入されるオブジェクト)またはインポートが必要なパーツ(注入されたオブジェクトが必要)のディクショナリであるという考え方です。カタログには、複数の方法でデータを入力できます(したがって、diffカタログの派生)。ディレクトリ(すべてディレクトリ内のasm)または特定のアセンブリ。
次に、複合カタログを作成できます。たとえば、DirAおよびDirBにあるこの特定のアセンブリからエクスポートされたすべてのオブジェクトを含む単一のディクショナリを作成します。この場合、個々のカタログを作成してから、2つをマージする複合カタログを作成できます。次に、このマージされたディクショナリをコードで使用して、インポート/エクスポートを要求します。