为什么protobuf-net反序列化的DataType对象没有显示Enum值?

时间:2018-10-10 12:39:16

标签: c# enums json.net protobuf-net

我们正在使用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
}

此致

1 个答案:

答案 0 :(得分:0)

我以为你在说

public ValueOneofCase ValueCase => (ValueOneofCase)__pbn__value.Discriminator;

我想也许您的JSON序列化程序可能会跳过它,因为没有“设置”?