MEF2目录如何运作?看起来它已被删除

时间:2013-08-07 12:08:09

标签: c# castle-windsor mef mef2

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

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

我想要的是什么:

  1. 没有属性。使用带有约定的配置构建器
  2. 插件目录
  3. 添加dll时,应用程序会知道可用的新导出。
  4. 我可以使用Castle Windsor吗?

2 个答案:

答案 0 :(得分:3)

如果您指的是MEF available on nuget的新Windows Store版本,则the documentation说明,

  

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

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

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

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

答案 1 :(得分:1)

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

看看这个引入MEF2功能的series of articles。另请查看此introductory article from CodeProject

我没有使用过Castle Winsdor,所以我不能对此发表评论。