如何在proto buffs中编码byte []

时间:2011-12-07 19:11:29

标签: protocol-buffers

proto buff中是否有等效的int8或byte类型?我想发送一个字节数组对象。

3 个答案:

答案 0 :(得分:37)

答案 1 :(得分:10)

但是,如果您要存储单个字节,我建议您使用Int32。它是一个“变体”类型变量,它将根据存储在其中的数据改变大小。因此,如果要存储单个字节,它将是最小的结构。实际上,byteS数据类型相当大。这是因为字节结构包含索引长度和其他属性等数据。

在序列化时,我注意到从存储在byteS中的单个字节切换到int32时,大小差异大约为一半。

但请注意,此适用于存储在byteS中的多个字节,我怀疑它将比存储单个Int32小得多。

答案 2 :(得分:3)

ByteString类提供了将几种类型转换为protobuff类型“bytes”或ByteString

的方法
public static ByteString CopyFrom(params byte[] bytes);
public static ByteString CopyFrom(string text, Encoding encoding);