私は MEF に比較的慣れていないため、機能を完全には理解していません。Unity の InjectionMember に似たものを達成しようとしています。
MEF パーツをインポートするクラスがあるとします。簡単にするために、エクスポートされた部分の例として次のクラスを取り上げます。
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class Logger {
public string Category {
get;
set;
}
public void Write(string text) {
}
}
public class MyViewModel {
[Import]
public Logger Log {
get;
set;
}
}
今、私が理解しようとしているのは、インポート時に Category プロパティの値を指定できるかどうかです。何かのようなもの:
public class MyViewModel {
[MyImportAttribute(Category="MyCategory")]
public Logger Log {
get;
set;
}
}
public class MyOtherViewModel {
[MyImportAttribute(Category="MyOtherCategory")]
public Logger Log {
get;
set;
}
}
とりあえずやっていることは IPartImportsSatisfiedNotification の実装とコードでの Category の設定です。しかし、明らかに、すべてを 1 か所にきちんとまとめておきたいと思います。