【发布时间】:2017-07-28 11:06:15
【问题描述】:
任何人都可以通过相关示例以及何时使用 MEF 中的 Import 和 ImportingConstructor 属性来帮助我吗? [Import(AllowDefault = true)] 有什么用?
根据我对 MEF 的理解:
导出属性定义在类型为 T 的类上,其中 T 是接口,并创建该类的实例导入属性应在引用变量上定义,如下所示
[Export(typeof(ICalculator))]
class MySimpleCalculator : ICalculator
{
// Implement the interface
}
class MyMainClass
{
// MEF engine creates an instance as Export attribute is defined
// on MySimpleCalculator
[Import(typeof(ICalculator))]
public ICalculator calculator;
}
如果在给定程序集中定义了 T 类型的多个导出,那么我们可以使用 ImportMany 属性。
那么现在任何人都可以解释何时使用 Import 和 ImportingConstructor 以及构造函数中的 AllowDefault 属性吗?
如果有人能用更好的例子来解释,那就太好了。
任何帮助将不胜感激。 谢谢
【问题讨论】: