这两段代码的区别在哪里?
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 县序列化,然后再反序列化,
但是第二段则报错,是什么原因呢?
希望高手指点