.net 2.0 跨程序集序列化和反序列化的问题以及解决方案

流程如下:

服务器利用BinaryFormatter 序列化对象成数组,然后将二进制数组编码成字符串发动到客户端,客户端解码字符串然后反序列化。

 

问题:

因为序列化和反序列化的程序集信息不一致,导致发序列化失败。

 

通用解决方案:

将需要序列化和反序列化操作的对象放入同一个应用程序集,比如生成一个类库,然后在客户端和服务器端添加引用。(参考

 

我在运用过程中,遇到以下问题:

由客户端主体本身是一个dll,通过一个称为loader的加载程序加载,loader可以检查更新主程序dll,如果主程序dll需要另外有依赖的类库,需要在主程序运行之前下载到本地,我的loader设计时没有这个功能(看来以后一定要加上去!虽然有后面之嫌疑)

 

鉴于此,我将对象写入客户端程序集,生成dll在服务器端添加引用,然后进行序列化和反序列化,成功。

posted @ 2010-03-03 10:38  liaohuqiu  阅读(845)  评论(3编辑  收藏  举报