基于AppDomain的"插件式"开发

本文在阅读空逸云的基于AppDomain的插件式开发后,进行了优化和修改。包括使用AppDomain.CurrentDomain.AssemblyResolve在程序集找不到时从plugins目录中再次加载,实现直接加载插件类名;通过方法代理减少插件方法调用的性能损失;确保插件的热插拔和版本更新时自动加载新DLL,无需文件锁定。提供类图、解决方案目录和代码下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了空逸云"基于AppDomain"插件式"开发"后,在其基础上,做优化修改。

1. 使用AppDomain.CurrentDomain.AssemblyResolve ,在程序集找不到时,去plugins 目录中再次加载。这样就可以直接加载插件类名,方便多了。

2. 插件的方法有限,直接写上方法代理,去除了动态生成方法调用的性能损失。

同时,系统还保证了插件的:

1. "热插拔"实现

2. 版本更新时,只要把新的DLL放置在plugins目录中(不会出现文件锁定),然后再次加载程序集及可。(这些应该是目录监控代码一完成,加载前卸载原Domain)

类图:

解决方案目录:

 代码下载:http://files.cnblogs.com/evlon/PluginApp.zip

参考:http://www.cnblogs.com/kongyiyun/archive/2011/08/01/2123459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值