Prism / Mef目录目录SatisfyImports

时间:2011-04-05 07:30:40

标签: prism mef catalog bootstrapper

在我的应用程序中,我有一个我直接从shell引用的模块(就在我工作的时候)。

protected override void ConfigureAggregateCatalog()
    {
        base.ConfigureAggregateCatalog();

        AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Bootstrapper).Assembly));            
        AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(MyModule).Assembly));
    }

在我的模块中,当我一直在调用SatisfyImportsOnce时,这已经有效,我可以看到正在创建的视图模型等。

但是,我现在已经更改了我的引导程序,以便为我的模块使用directoryCatalog。我添加了一些post构建事件来将我的模块程序集,pdb等复制到shell。

所以现在我的引导程序中有以下内容

protected override void ConfigureAggregateCatalog()
    {
        base.ConfigureAggregateCatalog();

        AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Bootstrapper).Assembly));

        // add the directory catalog for the modules
        AggregateCatalog.Catalogs.Add(new DirectoryCatalog("Modules"));
    }

我现在能够运行我的应用程序并查看我的模块中的视图,但现在过去工作的SatisfyImportsOnce似乎什么也没做。我看不出任何错误。现在我正在使用目录编目,我的导入/导出是否需要不同的属性?

感谢。

1 个答案:

答案 0 :(得分:0)

不,您需要使用的属性不应有任何差异。

很难说出错了,这是关于一般MEF debugging的博文。