0

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

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

4

1 回答 1

1

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

于 2013-08-27T12:44:02.947 回答