3

看起来 MEF 框架创建了具有默认 CTOR 的对象。自定义 CTOR 或带参数的构造函数怎么样?例如:

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

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

公共接口 IParameterID { public int Id { get; 私人套装;} ... }

那么 CTOR 将是:

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

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

4

1 回答 1

4

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

于 2009-10-24T04:55:27.260 回答