Protocol buffers 在相似原型定义之间进行编码/解码

Protocol buffers 在相似原型定义之间进行编码/解码,protocol-buffers,grpc,proto,Protocol Buffers,Grpc,Proto,假设我有以下原型定义 消息消息1{ 字符串字段1=1; EnumType1.enum type=2; } 消息枚举类型1{ 枚举枚举{ 零=0; 1=1; } } 信息2{ 字符串字段1=1; EnumType2.enum type=2; } 消息枚举类型2{ 枚举枚举{ 零=0; 1=1; } } 我可以信任协议缓冲区解码器进行解码,将Message1消息编码为Message2,反之亦然。在某些情况下会有例外吗?对于您的特定示例,是的,看起来它会起作用。只要两条消息之间的结构相同,它们将具有

假设我有以下原型定义

消息消息1{
字符串字段1=1;
EnumType1.enum type=2;
}
消息枚举类型1{
枚举枚举{
零=0;
1=1;
}
}
信息2{
字符串字段1=1;
EnumType2.enum type=2;
}
消息枚举类型2{
枚举枚举{
零=0;
1=1;
}
}

我可以信任协议缓冲区解码器进行解码,将Message1消息编码为Message2,反之亦然。在某些情况下会有例外吗?

对于您的特定示例,是的,看起来它会起作用。只要两条消息之间的结构相同,它们将具有相同的wire格式并具有交叉兼容性(字段名甚至不需要匹配)。不过,我并不建议这样做,但在某些迁移类型的情况下,这样做可能会有所帮助。编辑:您可能还对本参考资料感兴趣: