【发布时间】:2013-10-29 00:08:56
【问题描述】:
给定一个编码为Stream 或byte[] 的协议缓冲区,但不知道对象类型本身,我们如何打印消息的骨架?该用例用于调试基于 protobuf 的 IO,用于根本原因分析。
如果有现有的工具可以从二进制文件中解析原始协议缓冲区字节流,那就太好了!另一种方法可能是使用 ProtoBuf.NET 类 ProtoReader() 继续运行,直到我们遇到错误,但 ProtoReader() 的用法尚不清楚。我从下面开始,但找不到关于如何使用 ProtoReader 类来实际执行它的好的文档。该项目的源代码也不是很容易理解......所以希望得到一些提示/帮助
using (var fs = File.OpenRead(filePath))
{
using (var pr = new ProtoReader(fs, TypeModel.Create(), null))
{
// Use ProtoReader to march through the bytes
// Printing field number, type, size and payload values/bytes
}
}
【问题讨论】:
标签: c# protocol-buffers protobuf-net