2011-03-23 49 views
3

是否有可能,或者我应该在哪里寻找扩展挂钩以在MEF中定义条件导入?MEF有条件导入

可选导入的反转的排序(AllowDefault=true)。我拥有的是一个物业进口,如果已经设定好了,我不想将当前价值吹走。

干杯

回答

1

MEF不支持这样的事情。你可以写的第一个非空一个后忽略任何设置属性:

private IContract _import; 
[Import] 
public IContract Import 
{ 
    get { return _import; } 
    set 
    { 
     if (_import == null) 
     { 
      _import = value; 
     } 
    } 
} 

我不知道该用例,这是什么,所以我不知道这是否会帮助你。除重组期间的重组输入外,MEF不会设置多次输入。

+0

你的情况不正确:)谢谢 – 2011-03-24 03:48:21

+0

@Simon。哎呀,我现在修好了 – 2011-03-24 20:45:28

4

如果您在集合属性中设置了导入,则可以对其执行任何操作。

public class Foo 
{ 
    [Import] 
    private object ImportData { set { if(this.Data == null) this.Data = value } } 

    public object Data { get; set; } 
}