我们的应用程序实现了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似乎是空的,虽然我在容器目录中看到我可以看到已经导出了插件类。请帮助,请