如何在MEF目录中识别我自己的零件?

时间:2013-08-26 15:04:19

标签: .net prism mef

在使用MEF和PRISM在WPF中创建复合模块化UI应用程序之后,我按照指示使用了WPF应用程序,并且我在主窗口上注入区域的视图工作正常。但是,对于导出MEF Parts的模块项目,我已将输出目录设置为某处的部件存储库目录。当我构建解决方案时,我的ModuleA.dll被放置在该目录中,但具有所有依赖项。

我在那个部件repo目录上使用DirectoryCatalog,它包含26个部分,其中只有1部分是我的。我想从该目录中提取我的部分列表,而不是自己使用原始反射,例如不是通过检查程序集和构建AssemblyCatalog。有什么方法可以在目录上调用Parts,并检查导出以查看哪些是我的?如果我浏览目录,我可以看到我的Part,但是我看不到任何可以用语法检查的属性。

1 个答案:

答案 0 :(得分:1)

如果你只想从一个特定的程序集中加载东西,那就违背了MEF的全部要点......如果这就是你想要的,那就直接引用那个程序集。如果你想以MEF的方式做事,应用程序不应该关注目录中的内容 - 它应该只是“导入”它需要的接口,让框架找出哪个部分满足这个接口。假设您已为您的零件定义了自定义界面,MEF将只在您的1个装配中找到它的一个实现,并且在其他25个装配中找不到任何内容。