Показать все элементы в сообщении буфера протокола - PullRequest
1 голос
/ 16 июня 2011

Как я могу показать все элементы в сообщении буфера протокола?Нужно ли использовать отражение или преобразовать сообщение в сообщение XML, а затем показать его?В идеале некоторый общий код, который будет работать для любого сообщения.Lars

1 Ответ

1 голос
/ 16 июня 2011

Сообщение protobuf является внутренне неоднозначным, если у вас нет доступной схемы .proto (или может выводить схему), поскольку (например) проводной тип "string" может представлять:

  • строка utf-8
  • BLOB
  • под-сообщение
  • упакованный массив

Подобная неоднозначность существует длявсе типы проводов (за исключением, возможно, «групп»).

Я бы рекомендовал провести его через существующий процесс десериализации (в сравнении с моделью типов, которую вы, вероятно, имеете в проекте), чтобы получить объектную модель.подходит для осмотра.От объектной модели у вас есть все обычные опции - отражение, сериализация через XmlSerializer / JavaScriptSerializer и т. Д.

Если все, что у вас есть, это необработанные данные, есть плагин wireshark, который может помочь,или protobuf-net существует класс ProtoReader, который может быть полезен для анализа такого потока;но акцент здесь заключается в том, что поток сложно разобрать в изоляции.

...