Подтвердить что ты не робот

Как закодировать байт [] в протобаффах

Существует ли эквивалент int8 или байтового типа в proto buffs? Я хотел бы отправить объект байтового массива.

4b9b3361

Ответ 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);