检查 protoBuf 中是不是存在消息类型

Posted

技术标签:

【中文标题】检查 protoBuf 中是不是存在消息类型【英文标题】:Check the presence of a message type in protoBuf检查 protoBuf 中是否存在消息类型 【发布时间】:2021-07-07 07:13:46 【问题描述】:

我是 gRPC 的新手,想检查 C# 语言中是否存在消息字段。我知道我们可以在 Java 中使用 hasField() 属性,但在 C# 中没有提到任何此类属性。

message foo
...

message bar
foo data=1;

如何查看消息栏中的数据字段是否设置?

【问题讨论】:

【参考方案1】:

除非标记为optional,否则字段出现在每条消息中。

见optional

data(类型foo)中的字段可能未设置,在这种情况下使用默认值。见语言guide。

注意您的问题具体涉及 protobufs(发送的消息)而不是 gRPC(RPC 机制)。

【讨论】:

以上是关于检查 protoBuf 中是不是存在消息类型的主要内容,如果未能解决你的问题,请参考以下文章

protobuf 怎么查看版本

将protobuf字段的类型从double更改为float

检查是不是存在任何错误消息并在 laravel 中显示所有错误消息

如何停止使用 protobuf3 打印错误消息“无法解析类型的消息,因为它缺少必填字段”

如何确定protobuf中的消息类型,以便我可以使用该类型.parsefrom(byte [])

google protobuf 消息是不是具有带有元信息的可解析标头?