web-dev-qa-db-fra.com

Comment coder l'octet [] dans les buffs de proto

Existe-t-il un équivalent au type int8 ou octet dans les buffs proto? Je voudrais envoyer un objet tableau d'octets.

35
Usman Ismail
41
Luka Rahne

Si vous cherchez à stocker un nique octet, cependant, je suggère d'utiliser l'Int32. Il s'agit d'une variable de type 'variant' qui changera de taille en fonction des données qui y sont stockées. Donc, si vous stockez un seul octet, ce sera la plus petite structure. Le type de données byteS est en fait assez volumineux en comparaison. En effet, la structure d'octets contient des données telles que la longueur d'index et d'autres propriétés.

Lors de la sérialisation, j'ai remarqué une différence de taille d'environ la moitié lors du passage d'un seul octet stocké dans un octet à un int32.

Notez cependant que cela ne s'applique pas s'applique à plusieurs octets stockés dans les octets, ce qui, je le soupçonne, sera beaucoup plus petit que le stockage de Int32 individuel.

10
Misha Mengisen

La classe ByteString fournit des méthodes pour convertir quelques types en octets de type protobuf ou ByteString

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