Существует ли эквивалент int8 или байтового типа в proto buffs? Я хотел бы отправить объект байтового массива.
Как закодировать байт [] в протобаффах
Ответ 1
http://code.google.com/apis/protocolbuffers/docs/proto.html#scalar
bytes
Ответ 2
Если вы хотите сохранить один байт, я бы предложил использовать Int32. Это переменная типа "вариант", которая будет изменять размер в зависимости от данных, которые хранятся в нем. Поэтому, если вы храните один байт, это будет самая маленькая структура. Тип данных byteS на самом деле довольно большой. Это связано с тем, что структура байтов содержит данные, такие как длина индекса и другие свойства.
При сериализации я заметил разницу в размере примерно половины при переключении с одного байта, хранящегося в байте, на int32.
Обратите внимание, однако, что это не относится к нескольким байтам, хранящимся в байтах, что, как я подозреваю, будет намного меньше, чем хранение отдельного Int32.
Ответ 3
Класс ByteString предоставляет методы для преобразования нескольких типов в protobuff типа "bytes" или ByteString
public static ByteString CopyFrom(params byte[] bytes);
public static ByteString CopyFrom(string text, Encoding encoding);