C# MEF继承导出元数据

C# MEF继承导出元数据,c#,mef,C#,Mef,我只有简单使用MEF的经验。我想知道如何最好地完成以下工作 我有一个接口类 我有多个实现类,如下所示: 在其他地方,我需要为容器中存在的所有导出枚举所有DisplayName元数据。(向用户显示)。这意味着我不想创建导出,只想检查其类型的元数据 我该怎么做?您检查过MEF 2附带的ExportFactory吗? 它有助于动态创建导出实例。请参阅有关Exportfactory的msdn文章,并在上回答此堆栈溢出问题 您可以在不创建导出的情况下从工厂访问元数据。您的导入在哪里?@JRLambert:

我只有简单使用MEF的经验。我想知道如何最好地完成以下工作

  • 我有一个接口类
  • 我有多个实现类,如下所示:
  • 在其他地方,我需要为容器中存在的所有导出枚举所有
    DisplayName
    元数据。(向用户显示)。这意味着我不想创建导出,只想检查其类型的元数据

  • 我该怎么做?

    您检查过MEF 2附带的ExportFactory吗? 它有助于动态创建导出实例。请参阅有关Exportfactory的msdn文章,并在上回答此堆栈溢出问题


    您可以在不创建导出的情况下从工厂访问元数据。

    您的导入在哪里?@JRLambert:我不想显式导入。只需要获取元数据属性的列表。您仍然需要导入以获取元数据属性。您可以使用一种
    Lazy
    类型,它在您想要使用它之前不会创建导入。@JRLambert:但是
    Lazy
    类型意味着我只能创建一个零件一次。我需要同一导出的多个实例。您可以将其导入到许多地方。。。。还有很多例子
    
        [InheritedExport]
        public interface IBaseView
        {
        }
    
    
        [PartCreattionPolicy(PartCreationPolicy.NonShared), ExportMetadata("DisplayName", "SimpleView")
        public class SimpleView : IBaseView
        {
            //Implementation
        }