使用BinaryReader反序列化失败

时间:2015-05-07 06:57:54

标签: c#

我有一个byte[],我需要对其进行反序列化。

我写了这段代码

  using(MemodyStream stream = new MemoryStream(byteArray)
  {
       using(BinaryReader reader = new BinaryReader(stream))
       {
             Person p = new Person();
             p.id = reader.ReadString();
             p.age = reader.ReadInt32();
       }
  }

但我不明白为什么我看到BinaryReader每次返回0 =>并且byteArray不包含0.

我的错误在哪里?

如何以另一种方式做到这一点?

添加..

我以相同的顺序写这个数据

   using(BinaryWriter w = new BinaryWriter(stream))
   {
         w.Write(person.id);
         w.Write(person.age);
   }

1 个答案:

答案 0 :(得分:1)

我认为每件事都没问题,问题一定是在塞片化:

我使用此代码并且确定:

        int myInt = 100;
        byte[] byteArray = BitConverter.GetBytes(myInt);

        using (MemoryStream stream = new MemoryStream(byteArray)) {
            using (BinaryReader reader = new BinaryReader(stream)) {
                var i = reader.ReadInt32();
            }
        }
相关问题