gpt4 book ai didi

protocol-buffers - Protobuf,如何在二进制文件中添加自定义版本详细信息

转载 作者:行者123 更新时间:2023-12-02 04:14:36 25 4
gpt4 key购买 nike

我想用我自己的版本号标记每个protobuf序列化的数据。因此,如果需要,我可以检查用于序列化数据的版本。尽管protobuf是围绕想法设计的,所以您无需检查版本。

为此,我可以使用在.net序列化中添加版本字段的相同方法。

只想确认这也是在protobuf中首选的方式。

class protodata1
{
public protodata1()
{
version = 1;
}
[Protomember(1)]
int version { get; set;}
[Protomember(2)]
int somedata { get; set;}
}

在protobuf-net中也应该像上面那样做吗?
在构造函数中分配版本,如果需要对类进行类化,它将被覆盖。对于要序列化的新对象,它将使用版本1

最佳答案

好吧,如果您对“版本”的含义只是作为一个数据字段,那么可以肯定;只需将其添加为序列化成员即可。请注意,这在序列化过程中(例如通过替代协定运行)没有任何特殊含义-尽管作为一个顺便一句,如果您需要支持截然不同的消息结构,那么在“v2”中可能会有一些选择(一个坏主意)无论如何)。

我可能要补充的唯一警告是,任何尚未包括该数字的现有数据都将被称为“版本1”。在“v2”中,另一个选择是使用WCF方法跳过构造函数(如果需要)。这将意味着这些情况默认改为“版本0”-可能会减少混乱(或者可能会更加混乱;我让您决定)。

关于protocol-buffers - Protobuf,如何在二进制文件中添加自定义版本详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com