1
我想要一个简单的代码片段,它将循环访问协议缓冲区的随机流,并在没有对结构内容的明确理解的情况下打印出内容。东西是相当于XmlReader.Read()while循环ProtoBuf-Net做原始读取
using (ProtoBuf.ProtoReader protoReader =
new ProtoBuf.ProtoReader(stream1, null,
new ProtoBuf.SerializationContext { }))
{
protoReader.ReadFieldHeader();
while (protoReader.WireType != ProtoBuf.WireType.None)
{
switch (protoReader.WireType)
{
case ProtoBuf.WireType.Fixed64:
Console.WriteLine(protoReader.ReadInt64());
break;
case ProtoBuf.WireType.Fixed32:
Console.WriteLine(protoReader.ReadInt32());
break;
case ProtoBuf.WireType.StartGroup:
Console.WriteLine(protoReader.ReadInt32());
break;
default:
Console.WriteLine(protoReader.WireType);
break;
}
}
}
里面不过,我不知道如何将协议缓冲区前进到下一个元素。在我的测试中,它不断返回“StartGroup”并永远不会前进。我如何前进到流中的下一个元素?