【问题标题】:How do I identify my own parts in an MEF catalogue?如何在 MEF 目录中识别我自己的零件?
【发布时间】:2013-08-26 15:04:18
【问题描述】:

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

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

【问题讨论】:

  • 什么将程序集定义为“你的”?
  • 我写的那个,罗伯特;目录中包含我的 26 个零件中的 1 个。

标签: .net prism mef


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-12-08
    • 1970-01-01
    • 2013-12-03
    • 2013-11-26
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    相关资源
    最近更新 更多