最近用户有个需求,希望能够将引用的动态链接库不放在应用程序的文件夹中。
需要订购AppDomain.CurrentDomain.AssemblyResolve与AppDomain.CurrentDomain.TypeResolve事件。
AssemblyResolve用来在解析程序集失败时使用,TypeResolve用来在解析动态调用的程序及失败时调用(我的代码中是序列化与反序列化)。
结构:
A程序集数据,实现了序列化与反序列化。
B程序集逻辑,实现了存储。
C程序集客户端,实现了对B中的存储与加载的调用。
代码如下:
Datas程序集:
Logical程序集:
Customers程序集:
假设用户不想将Datas程序集放在应用程序文件夹下,我的代码里面放到了d:/Study Data里面,你可以随便放。
然后编译,运行OK。
需要注意:Logical引用Datas;Customers引用Logical;都是文件引用。
项目我会传到我的下载里面,过后会把链接附上: 项目链接