【问题标题】:Does MEF Support Customized CTOR?MEF 是否支持自定义 CTOR?
【发布时间】:2009-10-24 03:08:18
【问题描述】:

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

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

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

公共接口 IParameterID { 公共 int ID { 获取;私人套装; } ... }

那么 CTOR 将是:

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

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

【问题讨论】:

    标签: mef


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      相关资源
      最近更新 更多