如何在协议缓冲区消息中显示所有元素? 我是否需要使用反射或将消息转换为XML消息然后显示它? 理想情况下,一些适用于任何消息的通用代码。 拉斯
答案 0 :(得分:1)
protobuf消息内部不明确,除非您有.proto模式(或者推断模式)可用,因为(例如)“string”wire-type可以表示:
所有线型都存在类似的模糊性(除了“组”之外)。
我的建议是通过现有的反序列化过程(针对您可能在项目中提供的类型模型)运行它,以获得适合检查的对象模型。从对象模型中,您可以使用所有常用选项 - 通过XmlSerializer
/ JavaScriptSerializer
进行反射,序列化等。
如果你拥有的只是原始数据,那么有一个可能有用的wireshark插件,或者protobuf-net存在一个可能对解析这样一个流有用的ProtoReader类;但这里强调的是,流是孤立地解密的难点。