1

私は基本的に、あるタイプの Product を取り込んで、特にその製品を処理できる IProfileService の実装を返すファクトリ メソッドを持つクラスを持っています。特定の製品がインストールされたときにのみインストールされる別の DLL に IProfileService のさまざまな実装を実装できるように MEF を使用したい場合、どのようなアプローチがよいでしょうか?

私が最初に考えたのは、MetaData を使用した ImportMany で処理する製品を記述し、ファクトリ メソッドで LINQ クエリを使用して、渡された製品を MetaData と比較することでした。これはいい音ですか、それとももっと良い方法がありますか?

4

1 に答える 1

2

そのアプローチはうまくいくと思います。他に良い方法が思い浮かびません。

このアプローチで使用できる手法は、遅延読み込みです。MEF に関するこのすばらしい記事を参照してください。エクスポートで使用Lazy<T>することにより、IProfileService オブジェクトは必要になるまで作成されません。

于 2012-10-18T14:55:01.993 に答える