Каков наилучший способ получить файл .cs из данного файла .proto с protobuf.net - PullRequest
0 голосов
/ 10 октября 2018

После нескольких проб с онлайн-генератором protobuf.net я сомневаюсь в том, как y использовать для получения более релевантного файла .cs из файла .proto.

Входной файл протока - это файл sparkplub_b изссылка ниже: https://github.com/Cirrus-Link/Sparkplug/blob/master/sparkplug_b/sparkplug_b.proto

В документации Sparkplug перечисления Datatype имеют строковую форму 'Uint64', а в файле .cs результата мы имеем 'LongValue'.

(я также долженвыполните некоторые изменения в файле .cs, чтобы можно было использовать перечисления с DataType в сериализации JSON экземпляра объекта)

Спасибо.

  "Timestamp": 1538568112852,
  "Metrics": [
    {
      "Name": "bdSeq",
      "Timestamp": 1538568112852,
      "Datatype": 4,
      "IsNull": false,
      "Metadata": null,
      "Properties": null,
      "LongValue": 0,
      "ValueCase": 11
    }
  ],
  "Seq": 18446744073709551615
}

1 Ответ

0 голосов
/ 17 октября 2018

Извините за задержку, я взял перерыв.Я являюсь автором protobuf-net.

Каков наилучший способ получить файл .cs из заданного файла .proto с protobuf.net

В конечном счете,специально для protobuf-net: protogen - это то, что https://protogen.marcgravell.com/ использует (я полагаю, именно об этом вы и говорили, когда говорите «с онлайн-генератором protobuf.net»)

В документации Sparkplug перечисления Datatype имеют строковую форму 'Uint64', а в файле .cs результата мы имеем 'LongValue'.

Я предполагаю, что это происходит из:

uint64 long_value       = 4;

Если проблема заключается в наименовании (LongValue против long_value), то обратите внимание, что protobuf-net имеет опции, позволяющие больше контролировать это;LongValue это просто соглашение по умолчанию.

Однако: это не перечисление - в sparkplug_b.proto нет перечисления.Если вы можете более конкретно сказать, что вы хотите получить в качестве сгенерированного кода (и в идеале, почему), я почти наверняка могу помочь больше.

(правка: там есть и enum, необязательно сгенерированные из oneof)

...