Вот что я пытаюсь выяснить, их документы недостаточно хорошо объясняют это, по крайней мере, для меня..
Сенарио:
У меня есть 5 прото-файлов, которые я генерирую с помощью protoc для C++. Мое приложение должно получить сообщение, а затем иметь возможность перебирать все поля при доступе к их значениям и именам.
Что я хотел бы сделать, так это проанализировать сообщение в классе DynamicMessage, а затем выполнить итерацию по полям. Таким образом, мне не нужно точно знать, что это за сообщение, и я могу обрабатывать их все одним общим способом.
Я знаю, что можно обрабатывать сообщения, анализируя их до определенного типа, а затем рассматривая их как базовый класс сообщений, но для моего приложения это нежелательно.
Похоже, то, что я хочу сделать, должно быть возможно с помощью «--дескриптора _set _out» и динамического класса сообщений.
Что я пробовал(И потерпел неудачу с):
Я переместил descriptor.proto в папку с моими прототипами и включил его вместе с другими на этапе компиляции. Я также установил --дескриптор _установил _флаг вывода для печати в файл "my _descriptors.pb.ds"
Я понятия не имею, куда двигаться дальше.
Вот то, на что я ссылался, хотя там немного... Извините за длинное сообщение и несколько расплывчатую схему именования тем.
Кроме того, если это было неясно, я предполагаю, что сообщения не «Неизвестно». Я предполагаю, что по-прежнему будет требоваться включение соответствующих заголовков для каждого прототипа, чтобы мой код знал о «неизвестном» сообщении, которое он обрабатывает.