我们的应用程序实现了 MVVM-WPF-Unity,我添加了一个功能,该功能将通过 MEF 在我们的应用程序中添加插件。因此我有一个插件管理器类和插件类。
在插件类模块中,我有这个。
namespace project.plugin
{
[Export("Module",typeof(IModule))]
public class Plugin : IModule
{
private readonly IRegionManager regionManager;
private readonly IUnityContainer container;
}
[ImportingConstructor]
public Module(IRegionManager regionManager, IUnityContainer container)
{
this.regionManager = regionManager;
this.container = container;
}
public void Initialize()
{
RegisterViewsAndServices();
}
}
在我的插件管理器中,我这样做了:
[ImportMany]
public IEnumerable<Lazy<IModule>> ImportedModules { get; set; }
AggregateCatalog moduleCatalog = new AggregateCatalog(
new AssemblyCatalog(typeof(IModule).Assembly),
new DirectoryCatalog("Plugins"));
CompositionContainer container = new CompositionContainer(moduleCatalog);
container.ComposeParts(this);
foreach (IModule iModule in ImportedModules)
{
iModule.Initialize();
}
这里的问题是 ImportedModules 似乎是空的,尽管当我查看容器目录时,我可以看到插件类已被导出。请帮助请