10
votes

I want to convert a string object to ByteString.I have tried to use ByteString.CopyFrom() function to convert,but the return value is always "{Google.ProtocolBuffers.ByteString}".Why? How can I do?

The function i use like this.

The result

3
byte[] array = Encoding.ASCII.GetBytes(input); - vivek nuna

3 Answers

12
votes

Your string has been successfully converted to ByteStream. If you see {Google.ProtocolBuffers.ByteString} in the watch window, it simply means that the ByteStream does not override the ToString method. In short, Visual Studio doesn't know how to display a ByteStream, and therefore just display the type name instead.

That said, there is an overload of the CopyFrom method that allows you to directly use a string:

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

You can use one of methods from ByteString class to convert string to ByteArray ByteString.copyFromUtf8(stringText).

0
votes

According to the docs, Google.ProtocolBuffers.ByteStreamneeds an encoding to know how to display its content. Use ByteStream.ToString(Encoding encoding) or ByteStream.ToStringUtf8().