http://blog.csdn.net/zhuweisky/
插件的“动态替换”
2)在内存中复制插件Dll,然后加载内存中的Dll。这样,硬盘上的Dll就可以随意地被覆盖或删除了。以前我们是直接从硬盘加载插件Dll,就像这样:
Assembly asm = Assembly.LoadFrom(addinFilePath) ; 现在,我们需要转个弯:
Assembly asm = null ;
//先将插件拷贝到内存缓冲
byte[] addinStream = null ;
if(FileHelper.ReadFileToBuff(addinFilePath ,out addinStream))
{
asm = Assembly.Load(addinStream) ; //加载内存中的Dll
}