【问题标题】:MEF2 how does the catalogs work? Looks like it's been removedMEF2 目录如何工作?好像被删了
【发布时间】:2013-08-07 12:08:08
【问题描述】:

我在 MEF2 上找不到任何好的示例。

我想创建一个插件目录并使用目录目录来加载 Imports。

我想要什么:

  1. 没有属性。使用带有约定的配置生成器
  2. 插件目录
  3. 添加 dll 后,应用程序会发现新的导出可用。

我可以使用温莎城堡吗?

【问题讨论】:

  • 你试过什么?为什么您认为 DirectoryCatalog 已被删除?你是什​​么意思,'没有属性'? “使用配置生成器”是什么意思?

标签: c# castle-windsor mef mef2


【解决方案1】:

如果您指的是新的 Windows Store 版本的 MEF available on nuget,那么 the documentation 表示,

没有目录概念,也没有组合批次,也没有任何“容器层次结构”或组合范围 API。

对于 MEF 1 开发人员来说听起来很疯狂,但该页面很好地解释了基本原理。但是,您需要

  • 添加 dll 后,应用程序会知道新的导出可用。

这在 MEF 2(Win Store)版本中明确不可用,因为它不支持重新组合。 为此,您需要来自 .NET Framework 的“完整”MEF,位于 System.ComponentModel.Composition

【讨论】:

    【解决方案2】:

    MEF2 引入的约定模型是属性模型的替代方案。两种模型可以共存于一个应用程序中。目录有一个新的构造函数,它以 ReflectionContext 作为参数。 RegisrationBuilder 派生自此类。因此,您创建一个 RegistrationBuilder,对其进行设置,然后使用新的 .ctor 创建一个或多个目录并将其作为 ReflectionContext 传递。

    看看这个series of articles 介绍 MEF2 功能。也看看这个introductory article from CodeProject

    我没有使用过温斯多城堡,所以我无法对此发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2012-06-06
      • 2021-06-25
      • 1970-01-01
      相关资源
      最近更新 更多