MEF的主要目的是可扩展性;用作当应用程序的作者和插件(扩展)的作者不同并且在已发布的接口(合同)库之外彼此不具有特定知识时的“插件”框架。
原文链接:https://www.f2er.com/javaschema/282879.htmlMEF解决的另一个问题空间不同于通常的IoC可疑,MEF的优势之一是[扩展]发现。它有很多,好的,可扩展的发现机制,对您可以与扩展关联的元数据进行操作。从MEF CodePlex网站:
“MEF允许用附加元数据标记扩展,这有助于丰富的查询和过滤”
结合延迟加载标记的扩展的能力,能够在加载之前询问扩展元数据打开了一大堆有趣的情况的大门,并且基本上启用诸如[插件]版本化的能力。
MEF还具有“合同适配器”,其允许扩展被“适配”或“变换”(从类型到类型),完全控制这些变换的细节。合同适配器打开了另一个创造性的前沿,相对于“发现”意味着什么。
同样,MEF的意图紧紧集中于匿名插件可扩展性,这与其他IoC容器非常不同。所以虽然MEF可以用于组合,这只是它的能力相对于其他IoC的一个小交集,我怀疑我们会看到很多乱伦的相互作用前进。