如何确定Protobuf对象的protobuf版本?

时间:2017-09-20 07:58:46

标签: protocol-buffers protobuf-net

我的项目假设Proto3对象为输入。 但是,有时用户提供Proto2 Object作为输入。在这些情况下,我们希望抛出异常,因为我们的代码仅适用于Proto3类。

我们如何检查提供的Protobuf对象是否为Proto2或Proto3?

检查方法是否存在或默认值是一种Hack。 有没有适当的方法来检查Protobuf对象的版本?

2 个答案:

答案 0 :(得分:1)

需要在.proto文件中定义协议格式。 .proto文件以

开头
 syntax = "proto3";

答案 1 :(得分:1)

我找到了答案:

proto_verison = protobufObject.getDescriptorForType().getFile().getSyntax().name()

检查其" PROTO3"