web-dev-qa-db-ja.com

プロトバフでbyte []をエンコードする方法

プロトバフにint8またはバイト型に相当するものはありますか?バイト配列オブジェクトを送信したいと思います。

35
Usman Ismail
41
Luka Rahne

ただし、singleバイトを格納する場合は、Int32を使用することをお勧めします。これは、格納されているデータに応じてサイズを変更する「バリアント」型変数です。したがって、1バイトを格納する場合、それは最小の構造になります。 byteSデータ型は、実際にはかなり大きいです。これは、バイト構造がインデックスの長さなどのデータを保持するためです。

シリアル化で、byteSに格納された1バイトからint32に切り替えると、サイズが約半分になることに気付きました。

ただし、これはdoesmultiple byteSに格納されているバイトに適用されることに注意してください。

10
Misha Mengisen

ByteStringクラスは、いくつかの型をprotobuff型「bytes」またはByteStringに変換するメソッドを提供します

public static ByteString CopyFrom(params byte[] bytes);
public static ByteString CopyFrom(string text, Encoding encoding);
3
Coder2013333