Может генерировать дополнительные поля правильно с protogen.exe - PullRequest
0 голосов
/ 24 мая 2018

Я скачал CLI protogen.exe отсюда https://protogen.marcgravell.com/ и пытаюсь сгенерировать файл C # с *Specified средствами доступа для необязательных членов, как указано здесь с помощью этой командной строки:

protogen --csharp_out="." MyProtoFile.proto +p:detectMissing

Все необязательные элементы, использующие тип значения, не имеют типа NULL или типа Specified.

Я также постоянно получаю это предупреждающее сообщение:

google/protobuf/descriptor.proto(41,1,41,8): warning: no syntax specified; it is strongly recommended to specify 'syntax="proto2";' or 'syntax="proto3";'

И я не понимаю, потому что первая строка моего прото-файла:

syntax="proto2";

1 Ответ

0 голосов
/ 24 мая 2018

Предупреждение исходит от descriptor.proto, а не от вашего прото.Я рассмотрю вопрос о том, следует ли это подавлять для импортированных файлов.

Проблема «обнаружение пропажи» связана с тем, что предыдущий ответ устарел и относится к версии протогена r668.Инструмент Protogen был полностью переписан как полностью управляемый код в прошлом году, и, вероятно, эта функция либо больше не применяется, либо реализована по-другому.Я не за компьютером, чтобы проверить, но: это фундаментальная причина.Если вы запускаете инструмент без каких-либо опций, он должен показать вам поддерживаемое использование.

Редактировать: ShouldSerialize() методы предоставляются в случае необходимости и должны работать для этой цели.

...