компиляция прототипов во время выполнения - PullRequest
2 голосов
/ 27 января 2011

Я работаю над универсальным декодером protobuf, который работает следующим образом:

Пользователь может указать файл .proto во время выполнения и указать файл данных, и программа отобразит данные в файле на основе определения .proto.

Для выполнения вышесказанного наиболее очевидные вещи выглядят так, как будто мне нужно интерпретировать файл .proto (или скомпилировать его), а затем декодировать сообщение protobuf, используя его. Любые идеи о том, как я могу продолжить это? Есть ли библиотека, которая помогла бы мне с этим.

Как всегда, любая обратная связь очень ценится.

Спасибо!

1 Ответ

1 голос
/ 27 января 2011

Я хочу написать свой собственный анализатор, но сейчас Я просто использую «protoc» для анализа .proto в двоичный файл protobuf. Затем я десериализирую это, используя свою собственную библиотеку protobuf, давая мне заполненную объектную модель для работы.

Я не знаю, как далеко вы продвинулись, но вас также может заинтересовать некоторая поддержка времени выполнения в protobuf-net v2, которая позволяет на лету отображать данные protobuf в типы. В качестве альтернативы есть также многоразовая реализация для чтения, которая может удовлетворить ваши потребности.

Если бы вы могли работать с XML, я включил в protobuf-net инструмент "protogen", который выполняет code-gen; но передайте -t:xml, и он должен преобразовать .proto в XML для вас.

Iirc, "protoc" выводит протобуф, используя "descriptor.proto" из пакета google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...