您提供的原创如何成为热门话题?
- 内容介绍
- 相关推荐
本文共计2078个文字,预计阅读时间需要9分钟。
一、前言:MEF(Managed Extensibility Framework)MEF是轻量级的插件框架。使用简单,功能强大。详情见MSDN,本文不再赘述。
+ 使用MEF时,会遇到以下场景:+ 主程序和插件都使用了相同的引用。
一、前言MEF(Managed Extensibility Framework),是轻量级的插件框架。使用简单,功能强大。详细介绍见MSDN,本文不再赘述。
在使用MEF时,会遇到这样一种场景:
主程序和插件都引用了同一个DLL中同一个,但是引用的DLL版本不一致。
那么,程序在运行时,会出现4种情况:
(注:文字描述不太直观,可参照下节的实际演示)
1,不同版本DLL中未做改变:插件可正常调用。
2,不同版本DLL中内部实现做了改变:引用了与主程序所引用的DLL版本不一致的插件,在调用时,调用的不是插件所引用的DLL版本中的,而是调用的主程序所引用的DLL版本中的。
3,不同版本DLL中增加了重载方法:如果主程序所引用的DLL版本是包含重载方法的(即主程序所引用的DLL版本比插件引用的DLL版本新),那么插件都可以正常调用,不过调用的来自主程序所引用的DLL版本中的;相反,如果主程序所引用的DLL版本是未包含重载方法的(即主程序所引用的DLL版本比插件引用的DLL版本旧),那么,那些调用了的插件在运行时将会报错。
4,不同版本DLL中发生了改变——增减参数、改变返回值类型、删除了方法等:引用了与主程序所引用的DLL版本不一致的插件,在调用时会报错。
本文共计2078个文字,预计阅读时间需要9分钟。
一、前言:MEF(Managed Extensibility Framework)MEF是轻量级的插件框架。使用简单,功能强大。详情见MSDN,本文不再赘述。
+ 使用MEF时,会遇到以下场景:+ 主程序和插件都使用了相同的引用。
一、前言MEF(Managed Extensibility Framework),是轻量级的插件框架。使用简单,功能强大。详细介绍见MSDN,本文不再赘述。
在使用MEF时,会遇到这样一种场景:
主程序和插件都引用了同一个DLL中同一个,但是引用的DLL版本不一致。
那么,程序在运行时,会出现4种情况:
(注:文字描述不太直观,可参照下节的实际演示)
1,不同版本DLL中未做改变:插件可正常调用。
2,不同版本DLL中内部实现做了改变:引用了与主程序所引用的DLL版本不一致的插件,在调用时,调用的不是插件所引用的DLL版本中的,而是调用的主程序所引用的DLL版本中的。
3,不同版本DLL中增加了重载方法:如果主程序所引用的DLL版本是包含重载方法的(即主程序所引用的DLL版本比插件引用的DLL版本新),那么插件都可以正常调用,不过调用的来自主程序所引用的DLL版本中的;相反,如果主程序所引用的DLL版本是未包含重载方法的(即主程序所引用的DLL版本比插件引用的DLL版本旧),那么,那些调用了的插件在运行时将会报错。
4,不同版本DLL中发生了改变——增减参数、改变返回值类型、删除了方法等:引用了与主程序所引用的DLL版本不一致的插件,在调用时会报错。

