我相对于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并在代码中设置类别。但显然,我更愿意将所有内容整齐地放在一个地方。