请教序列化问题

xhan2000 2005-07-28 11:08:52
public static byte[] Serialize(object o)
{
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
formatter.Serialize(ms,o);
ms.Position=0;
byte[] b=ms.ToArray();
ms.Close();
return b;
}

public static object Deserialize(byte[] b)
{
BinaryFormatter formatter = new BinaryFormatter();

MemoryStream ms = new MemoryStream();
ms.Write(b,0,b.Length);
ms.Position=0;

object o=formatter.Deserialize(ms);
ms.Close();
return o;
}

在反序列化的时候提示错误:在反序列的时候遇到结尾流
...全文
192 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2005-07-29
  • 打赏
  • 举报
回复
how did you pass the bytes? if you are converting to string, try to use Convert.ToBase64String and Convert.FromBase64String
xhan2000 2005-07-29
  • 打赏
  • 举报
回复
作为web服务
我发现刚才的
public static byte[] Serialize(object o)
{
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
formatter.Serialize(ms,o);
ms.Position=0;
byte[] b=ms.ToArray();
ms.Close();
return b;
}
产生的xml结果和文件序列化产生的xml有一个字符的差异
xhan2000 2005-07-29
  • 打赏
  • 举报
回复
Public Function GetCookieContainer(ByVal str As String) As Byte()
Return MyCommon.MyStr.Serialize(CType(Application(str), System.Net.CookieContainer))
End Function

这里出错
c1 = CType(MyCommon.MyStr.Deserialize(ms.GetCookieContainer("c1")), System.Net.CookieContainer)
saucer 2005-07-29
  • 打赏
  • 举报
回复
works locally, what kind of objects? do you have the class locally on your client side?
yufenfeila 2005-07-29
  • 打赏
  • 举报
回复
代码在web服务中测试通过
saucer 2005-07-29
  • 打赏
  • 举报
回复
数组应该是可以的,也许是encoding没设置好
xhan2000 2005-07-29
  • 打赏
  • 举报
回复
还是思贵兄的办法厉害

不过为什么传递byte数组不行呢
xhan2000 2005-07-28
  • 打赏
  • 举报
回复
用文件序列化是正确的
MemoryStream()就有问题
xhan2000 2005-07-28
  • 打赏
  • 举报
回复
Serialize方法放在webwervices里面

Deserialize方法调用这个web服务

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧