什么是托管可扩展性框架(MEF)?

pri*_*ore 8 mef definition

我用Google搜索并且只收到了一些关于MEF的文章.有人请简要解释一下:

  • 什么是管理可扩展性框架?
  • 它需要什么目的?
  • 我该如何开始使用它?

任何一步一步的指导都会有所帮助,谢谢!

mar*_*rkt 7

MEF允许您设计可扩展的系统.

根据我的经验,您可以设计接口,创建具有这些接口实现的库,并在运行时动态加载它们.您还可以确定应该如何加载这些扩展 - 在同一个应用程序域中,还是在新的应用程序域中.您可以将其指向目录并告诉它获取某个接口的所有实现,并加载要在您的应用程序中使用的那些接口.

因此,因为您的应用程序不需要预先知道它的所有功能并且可以动态加载它们,您可以说它是"可扩展的"..

或者,在.NET中还有MAF,Managed Add-in Framework或System.AddIn命名空间.这有一些重叠,但更多的是针对加载项或插件模型.它具有管理版本控制和处理主机和加载项之间向后兼容性的功能,每个加载项具有不同版本的接口.

要开始使用MEF,我认为最好的地方可能就在这里:http://www.codeplex.com/MEF
有很多关于入门,文档,甚至论坛的信息......

  • AFAIK MEF始终在当前应用程序域中工作,不提供应用程序域隔离.只有MAF这样做. (2认同)