基于AppDomain的"插件式"开发
看了空逸云的"基于AppDomain的"插件式"开发"后,在其基础上,做优化修改。
1. 使用AppDomain.CurrentDomain.AssemblyResolve ,在程序集找不到时,去plugins 目录中再次加载。这样就可以直接加载插件类名,方便多了。
2. 插件的方法有限,直接写上方法代理,去除了动态生成方法调用的性能损失。
同时,系统还保证了插件的:
1. "热插拔"实现
2. 版本更新时,只要把新的DLL放置在plugins目录中(不会出现文件锁定),然后再次加载程序集及可。(这些应该是目录监控代码一完成,加载前卸载原Domain)
类图:
解决方案目录:
代码下载:https://files.cnblogs.com/evlon/PluginApp.zip
参考:http://www.cnblogs.com/kongyiyun/archive/2011/08/01/2123459.html
QQ:273352165
evlon#126.com
转载请注明出处。