Я относительно новичок в 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;
}
}
Теперь я пытаюсь выяснить, можно ли указать значение свойства «Категория» при импорте. Что-то типа:
public class MyViewModel {
[MyImportAttribute(Category="MyCategory")]
public Logger Log {
get;
set;
}
}
public class MyOtherViewModel {
[MyImportAttribute(Category="MyOtherCategory")]
public Logger Log {
get;
set;
}
}
В настоящее время я реализую IPartImportsSatisfiedNotification и устанавливаю категорию в коде. Но, очевидно, я бы предпочел хранить все аккуратно в одном месте.