日期:2014-05-19  浏览次数:20954 次

关于序列化和反序列化问题求救
现在JAVA提供了一个接口,返回值是hashtable序列化的sbyte[],在C#中我怎么将他反序列化?我想知道怎么把   sbyte[]   转化为   stream,   然后将stream   反序列化,再将对象强制转换为hashtable?

------解决方案--------------------
二进制序列化该只能用于平台内部,不能够跨平台使用
异构平台通信可以使用soap,或更轻量级的xml
------解决方案--------------------
sbyte?[] sbyteArr = getcbosarr.getCodSwitchByteArrayMessage( "CBOS_51 ", "VIEW_SWITCH_CNT_SIZE ");
我调试到 sbyteArr 有数据过来了,就是不知道怎么转换了。
-----------------------------
java code?

使用.net开发
1.将sbyte[]转为java对象
2.将得到的java对象soap序列化
3..net app获得soap序列化文本
4.soap序列化文本转为.net对象
5.运行你的业务逻辑

使用java开发
1.将sbyte[]转为java对象
2.运行你的业务逻辑
------解决方案--------------------
stream IO.MemeryStream= new IO.MemeryStream(byte[]); '接收到的byte数组
BinaryFormater format= new BinaryFormater();
Hashtable hash=(Hashtable)format.Deserialize(ms);
------解决方案--------------------
Java的hashtable 序列化和C#里的不太一样的吧,最好还是按标准来用xml
------解决方案--------------------
IO.MemeryStream stream = new IO.MemeryStream(byte[]); 写反了