MEF问题:我看不到导入的类

时间:2013-05-12 18:35:32

标签: wpf mvvm mef

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

0 个答案:

没有答案