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