我们正在使用protobuf-net库来解码从归纳自动化-点火软件提供的MQTT消息,该软件基于sparkplug_b.proto有效负载。
我们已经使用强大的在线原始工具生成了c#代码(选中了“应该使用枚举”)。因此,现在我们能够将二进制消息对象解码为例如人类可读的JSON(请参见下文)。但是JSON.net不会与枚举值一起显示“数据类型”。有效负载中有可用的枚举,我们是否需要对自动生成的代码进行手动更改才能解决此问题?
{
"Timestamp": 1538568112852,
"Metrics": [
{
"Name": "bdSeq",
"Timestamp": 1538568112852,
"Datatype": 4,
"IsNull": false,
"LongValue": 0
}
],
"Seq": 18446744073709551615
}
此致
答案 0 :(得分:0)
我以为你在说
public ValueOneofCase ValueCase => (ValueOneofCase)__pbn__value.Discriminator;
我想也许您的JSON序列化程序可能会跳过它,因为没有“设置”?