使用protobuf时如何将字符串转换为ByteString?

时间:2016-10-09 13:20:55

标签: c# protocol-buffers protobuf-csharp-port

我想将一个字符串对象转换为ByteString。我试图使用ByteString.CopyFrom()函数进行转换,但返回值总是" {Google.ProtocolBuffers.ByteString}"。为什么?我该怎么办?

The function i use like this.

The result

3 个答案:

答案 0 :(得分:4)

您的string已成功转换为ByteStream。如果您在观察窗口中看到 {Google.ProtocolBuffers.ByteString} ,则只表示ByteStream未覆盖ToString方法。简而言之,Visual Studio不知道如何显示ByteStream,因此只显示类型名称。

也就是说,CopyFrom方法存在重载,允许您直接使用字符串:

var APP_DEF_TEA_KEY = ByteString.CopyFrom("e#>&*m16", Encoding.Unicode);

答案 1 :(得分:1)

您可以使用 ByteString 类中的一种方法将字符串转换为 ByteArray ByteString.copyFromUtf8(stringText)

答案 2 :(得分:0)

根据the docsGoogle.ProtocolBuffers.ByteStream需要编码才能知道如何显示其内容。使用ByteStream.ToString(Encoding encoding)ByteStream.ToStringUtf8()