我有或多或少与这个问题相同的问题: C#/MEF doesn't work with a base class without parameterless constructor
我也明白答案。MEF 不知道 val 的值,因此它无法创建实例。
但我没有基本 ctor 调用和 val 的默认值:
[Export(typeof(IPrimitiveDecomposer))]
public class Prim : IPrimitiveDecomposer
{
[ImportingConstructor]
public Prim(int val=0)
{//some code
}
public bool Match(Node node) {return true;}
}
代码编译得很好,但是当我要求它时,MEF 似乎没有 IPrimitiveDecomposer 的导出。当我执行以下操作时,一切正常:
[Export(typeof(IPrimitiveDecomposer))]
public class Prim : IPrimitiveDecomposer
{
public Prim() : this(0)
public Prim(int val=0)
{//some code
}
public bool Match(Node node) {return true;}
}
谢谢你的帮助