Protobuf 组和消息
Protobuf groups and messages
我有一个关于 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;
}
group
使用不同的编码风格,大多数序列化器将完全拒绝在它们之间兼容地工作。由于您专门添加了 protobuf-net 标记,我会注意到 protobuf-net 在这里更宽容一些,并且 应该 可以互换使用,但我可能不会进入经常这样做的习惯。作为旁注,group
在很大程度上被 Google 弃用,并且 细节 甚至不再出现在编码规范中(它只是提到它们存在并已弃用)。
我有一个关于 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;
}
group
使用不同的编码风格,大多数序列化器将完全拒绝在它们之间兼容地工作。由于您专门添加了 protobuf-net 标记,我会注意到 protobuf-net 在这里更宽容一些,并且 应该 可以互换使用,但我可能不会进入经常这样做的习惯。作为旁注,group
在很大程度上被 Google 弃用,并且 细节 甚至不再出现在编码规范中(它只是提到它们存在并已弃用)。