Сообщение protobuf является внутренне неоднозначным, если у вас нет доступной схемы .proto (или может выводить схему), поскольку (например) проводной тип "string" может представлять:
- строка utf-8
- BLOB
- под-сообщение
- упакованный массив
Подобная неоднозначность существует длявсе типы проводов (за исключением, возможно, «групп»).
Я бы рекомендовал провести его через существующий процесс десериализации (в сравнении с моделью типов, которую вы, вероятно, имеете в проекте), чтобы получить объектную модель.подходит для осмотра.От объектной модели у вас есть все обычные опции - отражение, сериализация через XmlSerializer
/ JavaScriptSerializer
и т. Д.
Если все, что у вас есть, это необработанные данные, есть плагин wireshark, который может помочь,или protobuf-net существует класс ProtoReader, который может быть полезен для анализа такого потока;но акцент здесь заключается в том, что поток сложно разобрать в изоляции.