当前位置:  开发笔记 > 运维 > 正文

MEF(托管可扩展性框架)与IoC/DI

如何解决《MEF(托管可扩展性框架)与IoC/DI》经验,为你挑选了3个好方法。

MEF(Managed Extensibility Framework)解决了哪些问题,而现有的IoC/DI容器无法解决这些问题?



1> J Healy..:

MEF的主要目的是可扩展性; 当应用程序的作者和插件的作者(扩展)不同并且在已发布的接口(契约)库之外没有彼此的特定知识时,作为"插件"框架.

太空MEF解决的另一个问题是,与通常的IoC嫌疑人不同,MEF的优势之一是[扩展]发现.它有许多可扩展的发现机制,可以对可以与扩展关联的元数据进行操作.来自MEF CodePlex网站:

"MEF允许使用附加元数据标记扩展,这有助于丰富的查询和过滤"

结合延迟加载标记扩展的能力,能够加载之前询问扩展元数据,打开了通向一系列有趣场景的大门,并大大实现了[插件]版本控制等功能.

MEF还具有"合同适配器",允许扩展"适应"或"转换"(从类型到类型),并完全控制这些转换的细节.合同适配器开辟了另一个创造性的前沿,相对于"发现"意味着什么和需要.

同样,MEF的"意图"主要关注匿名插件的可扩展性,这与其他IoC容器非常不同.因此虽然MEF可以用于构图,但这仅仅是其相对于其他IoC的能力的一个小交集,我怀疑我们将会看到很多乱伦的相互作用.


你有一个非常明确的单词选择.

2> Glenn Block..:

IoC容器专注于你知道的东西,即我知道我将在单元测试中使用一个记录器,在我的应用程序中使用不同的记录器.MEF专注于那些你没有的东西,我的系统中可能会出现1到n个记录器.



3> Glenn Block..:

Scott Hanselman和我在最近的hanselminutes中更详细地讨论了这个主题.

http://www.hanselminutes.com/default.aspx?showID=166

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有