Protobuf字符串到可读字符串?

时间:2020-05-15 08:28:51

标签: c# wcf decode protobuf-net

我在Client Server WCF解决方案中使用protobuf,我需要记录消息的内容(参数)以尽可能有效地归档(避免繁重的序列化和反序列化)。

在IClientMessageInspector中,我以原始格式获取消息,但是在大多数消息中,都有一个Protobuf字符串,该字符串不可读。即使我使用base64对其进行解码,也可能仍然无法读取。那么,是否有一种简单有效的方法可以将此profostring转换为我可以记录到文件的可读内容?

问候

1 个答案:

答案 0 :(得分:2)

您无法创建任意原始有效载荷的有意义且准确的文本表示形式,因为二进制编码本身是模棱两可且过载的-完全相同的二进制可能意味着很多不同取决于所使用的架构(架构是从类型模型(对于protobuf-net而言,是从问题中的标记中隐含))。

如果您知道架构/类型,最好的选择是将protobuf有效载荷反序列化为类型,然后通过您喜欢的json / xml运行该类型/ yaml / csv /任何序列化程序,并记录那个

如果您只需要记录字节以进行审核:base-64应该足够,但是再次:如果没有上下文,它将毫无意义。

相关问题