MEF是否支持定制的CTOR?

时间:2009-10-24 03:08:19

标签: mef

看起来MEF框架创建了具有默认CTOR的对象。如何使用参数自定义CTOR或Constructor?例如:

[Export (typeof(IInterface1))]
public class MyClass : IInterface1
{
    public MyClass(int id) {....}
    ....
}

如果没有,我可以想到的一种方法是将对象作为参数传递给CTOR。例如:

public Interface IParameterID {       public int Id {get;私人集; }    ...    }

然后,CTOR将是:

public MyClass([Import(typeof(IParameter))] IParameterID id)
{ ... }

不确定是否可以在CTOR的参数中添加属性?接下来的问题是,如果MEF会自动创建一个IParameter实例并将其注入CTOR的参数?

1 个答案:

答案 0 :(得分:4)

是的,这是可能的。只需在您想要使用的构造函数上放置一个[ImportingConstructorAttribute]。参数将自动视为导入,但如果您需要更改它们的合同名称,您还可以在其上添加导入属性。