How to convert string to ByteString when using protobuf?

Boreas picture Boreas · Oct 9, 2016 · Viewed 25.2k times · Source

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

Answer

Kevin Gosse picture Kevin Gosse · Oct 9, 2016

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);