【问题标题】:How to determine protobuf version of Protobuf object?如何确定 Protobuf 对象的 protobuf 版本?
【发布时间】:2017-09-20 07:58:45
【问题描述】:
我的项目假定 Proto3 对象作为输入。
但是,有时用户会提供 Proto2 Object 作为输入。在这些情况下,我们希望抛出异常,因为我们的代码仅适用于 Proto3 类。
我们如何检查输入的 Protobuf 对象是 Proto2 还是 Proto3 ?
检查方法是否存在或默认值是一种技巧。
是否有任何适当的方法来检查 Protobuf 对象的版本?
【问题讨论】:
标签:
protocol-buffers
protobuf-net
【解决方案1】:
需要在 .proto 文件中定义您的协议格式。 .proto 文件以
开头
syntax = "proto3";
【解决方案2】:
我找到了答案:
proto_verison = protobufObject.getDescriptorForType().getFile().getSyntax().name()
检查它是否是“PROTO3”