我想将一个字符串对象转换为ByteString。我试图使用ByteString.CopyFrom()函数进行转换,但返回值总是" {Google.ProtocolBuffers.ByteString}"。为什么?我该怎么办?
答案 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 docs,Google.ProtocolBuffers.ByteStream
需要编码才能知道如何显示其内容。使用ByteStream.ToString(Encoding encoding)
或ByteStream.ToStringUtf8()
。