Wpf MEF问题:我可以';我看不到导入的类

Wpf MEF问题:我可以';我看不到导入的类,wpf,mvvm,mef,Wpf,Mvvm,Mef,我们的应用程序实现了MVVM WPF Unity,我添加了一个特性,可以通过MEF在应用程序中添加插件。因此,我有一个插件管理器类和插件类 在插件类模块中,我有这个 namespace project.plugin { [导出(“模块”,类型(IModule))] 公共类插件:IModule { 专用只读IRegionManager regionManager; 专用只读IUnityContainer容器; } [导入构造函数] 公共模块(IRegionManager区域管理器、IUnityCo

我们的应用程序实现了MVVM WPF Unity,我添加了一个特性,可以通过MEF在应用程序中添加插件。因此,我有一个插件管理器类和插件类

在插件类模块中,我有这个

namespace project.plugin
{
[导出(“模块”,类型(IModule))]
公共类插件:IModule
{
专用只读IRegionManager regionManager;
专用只读IUnityContainer容器;
}
[导入构造函数]
公共模块(IRegionManager区域管理器、IUnityContainer容器)
{
this.regionManager=regionManager;
this.container=容器;
}
公共无效初始化()
{
RegisterViewsAndServices();
}
}
在我的插件管理器中,我做到了以下几点:

[ImportMany]
公共IEnumerable导入模块{get;set;}
AggregateCatalog moduleCatalog=新的AggregateCatalog(
新的组件目录(类型(IModule).Assembly),
新目录(“插件”);
CompositionContainer=新的CompositionContainer(ModuleCalog);
容器。组件(本);
foreach(导入模块中的IModule IModule)
{                    
iModule.Initialize();
}

这里的问题是ImportedModules似乎是空的,尽管当我在容器目录中查看时,我可以看到插件类已经导出。请提供帮助

您正在显式导出合同名称“模块”,但您的ImportMany没有指定相同的合同名称(它使用名为与
IModule
关联的隐式合同)。谢谢Dan,我将编辑我的ImportMany属性并添加合同名称。成功导入模块后,我计划创建一个树视图,加载每个插件,并在树视图中单击相应的节点后显示视图。对此,我们将不胜感激。抱歉这个问题,我是C#的新手:(