基于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

posted @ 2012-10-11 17:18  阿牛  阅读(1894)  评论(1编辑  收藏  举报