Я хочу написать свой собственный анализатор, но сейчас Я просто использую «protoc» для анализа .proto в двоичный файл protobuf. Затем я десериализирую это, используя свою собственную библиотеку protobuf, давая мне заполненную объектную модель для работы.
Я не знаю, как далеко вы продвинулись, но вас также может заинтересовать некоторая поддержка времени выполнения в protobuf-net v2, которая позволяет на лету отображать данные protobuf в типы. В качестве альтернативы есть также многоразовая реализация для чтения, которая может удовлетворить ваши потребности.
Если бы вы могли работать с XML, я включил в protobuf-net инструмент "protogen", который выполняет code-gen; но передайте -t:xml
, и он должен преобразовать .proto в XML для вас.
Iirc, "protoc" выводит протобуф, используя "descriptor.proto" из пакета google.