Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Protobuf字符串到可读字符串?_C#_Wcf_Decode_Protobuf Net - Fatal编程技术网

C# Protobuf字符串到可读字符串?

C# Protobuf字符串到可读字符串?,c#,wcf,decode,protobuf-net,C#,Wcf,Decode,Protobuf Net,我在客户机-服务器WCF解决方案中使用protobuf,我需要尽可能有效地将消息内容(参数)记录到文件中(避免大量序列化和反序列化) 在IClientMessageInspector中,我以原始格式获取消息,但在大多数消息中,存在无法读取的Protobuf字符串。即使我对它进行解码,它可能仍然无法读取。那么,有没有一种简单而有效的方法将这些信息转换成我可以登录到文件中的可读信息呢 尊重您无法为任意protobuf负载创建有意义且准确的文本表示,因为二进制编码本身是不明确且重载的-完全相同的二进制

我在客户机-服务器WCF解决方案中使用protobuf,我需要尽可能有效地将消息内容(参数)记录到文件中(避免大量序列化和反序列化)

在IClientMessageInspector中,我以原始格式获取消息,但在大多数消息中,存在无法读取的Protobuf字符串。即使我对它进行解码,它可能仍然无法读取。那么,有没有一种简单而有效的方法将这些信息转换成我可以登录到文件中的可读信息呢

尊重

您无法为任意protobuf负载创建有意义且准确的文本表示,因为二进制编码本身是不明确且重载的-完全相同的二进制可能意味着许多不同的事情,具体取决于所使用的模式(模式是从类型模型隐式的,对于protobuf net,是从问题中的标记隐式的)

如果您知道模式/类型,那么最好将protobuf负载反序列化为该类型,然后通过首选的json/xml/yaml/csv/任何序列化程序运行该类型,并记录该类型

如果您只需要记录用于审计目的的字节:base-64应该足够了,但同样:如果没有上下文,它将毫无意义