这两段代码的区别在哪里?

zushenf 2004-06-18 05:07:54
1、

BinaryFormatter formatter = new BinaryFormatter();
object kao = "asf";
System.IO.MemoryStream mem = new System.IO.MemoryStream();
formatter.Serialize(mem,kao);
byte[] bytes =new byte[mem.Length];
bytes = mem.ToArray();
//说明:如果用 mem.Read(bytes,0,bytes.Length);不行,理由不明

System.IO.MemoryStream memdesc = new System.IO.MemoryStream(bytes);
//说明 如果使用 System.IO.MemoryStream memdesc = new System.IO.MemoryStream();
//memdesc.Write(bytes,0,bytes.Length); 不行,理由不明
BinaryFormatter formatterdesc = new BinaryFormatter();
object sdk = formatterdesc.Deserialize(memdesc) ;




2、

BinaryFormatter formatter = new BinaryFormatter();
object kao = "asf";
System.IO.MemoryStream mem = new System.IO.MemoryStream();
formatter.Serialize(mem,kao);
byte[] bytes =new byte[mem.Length];

mem.Read(bytes,0,bytes.Length);
System.IO.MemoryStream memdesc = new System.IO.MemoryStream();
memdesc.Write(bytes,0,bytes.Length); BinaryFormatter formatterdesc = new BinaryFormatter();
object sdk = formatterdesc.Deserialize(memdesc) ;

我在做程序的时候,发现如果用第一段代码,执行的话,可以把一个object 县序列化,然后再反序列化,
但是第二段则报错,是什么原因呢?
希望高手指点
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
EventLog 2004-07-05
  • 打赏
  • 举报
回复
太远了啊
AhBian 2004-06-18
  • 打赏
  • 举报
回复
内存流是有当前位置的,以下方法对你有用。

mem.Seek(0, SeekOrigin.Begin);
zushenf 2004-06-18
  • 打赏
  • 举报
回复
wei shen me ?

110,565

社区成员

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

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

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