MEF条件导入

3

有没有可能,或者我应该在哪里寻找一个扩展挂钩来定义MEF中的条件导入?

这有点像可选导入的反向(AllowDefault=true)。我的情况是属性导入,如果已经设置了当前值,我不想将其覆盖。

谢谢

2个回答

4

如果你在一个只读属性上设置了导入,那么你可以随心所欲地使用它。

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

    public object Data { get; set; }
}

1

MEF不支持这样的功能。您可以编写一个属性,忽略第一个非空设置之后的所有设置:

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

我不确定这个的使用情况是什么,所以我也不确定这是否能帮到你。MEF仅在重新组合期间设置可重构导入项。


@Simon。哎呀,我现在修好了。 - Daniel Plaisted

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接