我对 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 并在代码中设置类别。但显然我宁愿把所有东西都整齐地放在一个地方。