惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
量子位
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
博客园_首页
D
Docker
博客园 - 叶小钗
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
F
Fortinet All Blogs
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
腾讯CDC
罗磊的独立博客
雷峰网
雷峰网
博客园 - Franky

博客园 - AndyHai

用C#实现的黑客帝国中的字符雨特效 谁动了我的构造函数? 一个PCM音频转换与混音的示例 关心则乱 让ASPX和ASMX脱离IIS运行的例子(ASP.NET宿主程序) SQL 中如何对纪录进行拆分 带有空值提示的TextBox NAT类型检测方法(转载) 在.NET中探测U盘的插入/拔出 用WebService实现中国移动的Provision反向接口 用ASP.NET调用Tuxedo Tuxedo 搞定! 用Multi-Media Library实现的波形音频录制与播放 用Multi-Media Library制作流式音频播放器 研究如何用Multi-Media Library播放波形数据 又多一道面试题 面试 RTP协议
一个动态加载/卸载DLL的例子
AndyHai · 2007-07-15 · via 博客园 - AndyHai

原理我就不写了,博客园里很多“大虾”都已经写过了,只说说我的步骤:

1、创建一个新的AppDomain,SubDomain

2、将RemoteLoader(程序集载入器)载入到SubDomain中,并创建RemoteLoader的实例Loader,Loader在SubDomain中创建

3、用Loader.Load方法载入动态程序集Library.DLL,并返回想要得到的对象实例 ca,当然,这个实例也是在SubDomain中创建的(Load方法是泛型方法)

4、给ca的Events属性创建一个EventObj实例,实际上,这个实例在主应用程序域中(这是我用来处理跨AppDomain事件的关键之处)

5、可以使用ca操作了,所有的调用将在SubDomain中执行

6、卸载掉SubDomain后,Library.DLL可以被删除(我发现,Library.DLL不可以和主应用程序放在同一个目录下,否则即使AppDomain被卸载,还是无法被删除,难道是.NET的BUG?)

源码下载(For VS.NET 2005)