我有一个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);
}
答案 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();
}
}