是否可以,或者我应该在哪里寻找扩展挂钩来定义MEF中的条件导入?
可选导入(AllowDefault=true
)的反转排序。我所拥有的是属性导入,如果已经设置了,我不想将当前值消除。
干杯
答案 0 :(得分:4)
如果您在仅限设置的属性上设置导入,则可以使用它执行任何操作。
public class Foo
{
[Import]
private object ImportData { set { if(this.Data == null) this.Data = value } }
public object Data { get; set; }
}
答案 1 :(得分:1)
MEF不支持这样的事情。您可以编写一个在第一个非空零之后忽略任何集合的属性:
private IContract _import;
[Import]
public IContract Import
{
get { return _import; }
set
{
if (_import == null)
{
_import = value;
}
}
}
我不确定这个用例是什么,所以我不确定这对你有帮助。除重组期间可重新组合的进口外,MEF不会多次设置进口。