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 属性
Google.Protobuf.InvalidProtocolBufferException:协议消息包含无效标签(零)