我想将 UUID 附加到我的 protobuf 用户消息示例中的字段。
message User {
// field containing id as UUID type
required string email;
optional string name;
}
我知道 protobuf 消息还不支持 UUID 类型。我读过最好的方法是使用 UUID 消息类型。
所以我猜我的用户消息会导入我的 UUID 消息原型(prototype)定义并将其用作字段类型,如下所示:
import "myproject/UUID.proto";
message User {
required UUID id;
required string email;
optional string name;
}
我的问题是,UUID 消息的外观如何,我将如何对其进行编码/解码?我的目标是 Java/Scala 和 C# 兼容性。
最佳答案
如果有的话,你想使用 string
以避免字节顺序问题。请注意,具有相同字符串表示形式(因此是相同的“id”)的 UUID 和 MS GUID 具有不同的字节流顺序(大端与小端)。如果您使用 bytes
在使用 UUID 的 Java 和使用 System.Guid 的 C# 之间进行通信的协议(protocol)中,您最终可能会得到翻转的 ID。
关于protocol-buffers - 如何在 protobuf 消息中表示 UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344826/