Protobuf 组和消息

时间:2021-05-11 11:29:11

标签: protocol-buffers protobuf-net

我有一个关于 messagegroup 互兼容性的问题。用第一个 proto 编码的数据可以用第二个 proto 结构解码吗?或者它们具有不同的接线格式并且不兼容?

第一个proto

message SearchResponse {
  repeated group Result = 1 {
    required string url = 2;
    optional string title = 3;
    repeated string snippets = 4;
  }
}

第二个proto

message SearchResponse {
  message Result {
    required string url = 2;
    optional string title = 3;
    repeated string snippets = 4;
  }

  repeated Result result = 1;
}

1 个答案:

答案 0 :(得分:1)

group 使用不同的编码风格,大多数序列化器会完全拒绝在它们之间兼容工作。由于您特意添加了 标签,我会注意到 protobuf-net 在这里更宽容一点,并且应该互换工作,但我可能不会养成这样做的习惯很多时候。附带说明一下,group 在很大程度上已被 Google 弃用,并且详细信息甚至不再出现在编码规范中(它只是提到它们存在并且已被弃用)。 >