使用继承自Lazy<>的类导入依赖项

时间:2011-01-27 02:18:45

标签: mef lazy-evaluation import

您可以使用继承自Lazy而不是Lazy本身的类导入吗?我使用包含元数据的ExportAttribute派生词导出。

[FeatureExport(/* Feature Metadata Parameters */)]
public class Feature : IFeature
{
    // Feature Properties
}

public class FeatureReference : Lazy<IFeature, IFeatureMetadata>
{

}

public class Consumer
{
    [ImportMany]
    public IEnumerable<FeatureReference> FeatureReferences { get; set; }
}

这可能吗?会有用吗?我可以自己尝试一下,但我正在开发中,所以我实际上并没有编写任何代码。

1 个答案:

答案 0 :(得分:3)

不,我害怕它不起作用。您需要实现自己的编程模型扩展(自定义部件/目录或可能通过ReflectionModelServices)来实现此功能。

MEF必须创建FeatureReference对象才能设置它,并且考虑到FeatureReference可能有任何构造函数可以想象,你可以猜到为什么不支持它。