protobuf 标签DataFormat =DataFormat.FixedSize解决连续int字段无法解析

Posted 任雪松

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了protobuf 标签DataFormat =DataFormat.FixedSize解决连续int字段无法解析相关的知识,希望对你有一定的参考价值。

protobuf在序列化int的时候会省去部分字节,所以在连续的int字段序列化时候会导致解析的时候不正常。

这里只需要在序列化的时候加上标签,固定字节组大小即可

 

using ProtoBuf;

// 加入房间 C_S_JOIN_GAME
[ProtoContract]
public class C_S_JoinGame
{
[ProtoMember(1,DataFormat =DataFormat.FixedSize)]
public int roomType { get; set; }// 未知(1)

[ProtoMember(2, DataFormat = DataFormat.FixedSize)]
public int roomSubType { get; set; }// 未知(1)

[ProtoMember(3, DataFormat = DataFormat.FixedSize)]
public int roomIdx { get; set; }// 房间索引号(0: 新手, 1: 精英, 2: 帝王)
}

 

参考:http://www.jianshu.com/p/e0d81a9963e9

http://blog.csdn.net/weiwangchao_/article/details/16797763

以上是关于protobuf 标签DataFormat =DataFormat.FixedSize解决连续int字段无法解析的主要内容,如果未能解决你的问题,请参考以下文章

使用 jackson-dataformat-xml 库将 XML 中的空标签转换为 java 属性

如何使用 protobuf 序列化大型嵌套数组?

Google.Protobuf.InvalidProtocolBufferException:协议消息包含无效标签(零)

protobuf-net 反序列化错误 无效标签:0

protobuf -net 不知道如何序列化 type = object 的数据成员

jackson-dataformat-csv - 是不是可以自定义列名?