出现此问题的原因是,在使用
byte[] buffer= stream.GetBuffer()时,返回的byte[]不是完全的有效数据,而是在末尾有填充很多0的字节数组,因而在ProtoBuf.Serializer.Serialize时或ProtoBuf.Serializer.Deserialize时会抛出异常。正确的做法是,不使用stream.GetBuffer(),而使用
stream.ToArray()代替,或者使用stream.GetBuffer(),但是在生成stream时,使用
stream.Length(这个是实际有效字节长度),而不是buffer.Length(这个是填充0的总字节长度)。
使用protobuffer 序列化和反序列化出现 Invalid field in source data: 0 问题的解决
最新推荐文章于 2023-09-06 21:29:17 发布