Je teste BinaryFormatter pour voir comment cela fonctionnera pour moi et j'ai une question simple:
Lorsque vous l'utilisez avec la chaîne Bonjour, et je convertitons la mémoire Mémoire en une matrice, elle me donne 29 dimensions, avec cinq d'entre eux étant les données réelles vers la fin des dimensions: p> retours p> y a un moyen de renvoyer les données codées sous forme d'octets sans toutes les informations étrangères? P> P>
5 Réponses :
Pour une chaîne simple, utilisez un binarywriter. La surcharge sera réduite à un préfixe de petite longueur. P>
BinaryFormatter est destiné aux grappes d'objets sérialisés (complexes) et nécessite des structures de données auxiliaires pour le faire. p>
Cela dépend de ce que vous voulez réellement. Vous pouvez obtenir un tableau d'octet UTF8 d'une chaîne avec encoding.Utf8.getBytes. P>
Vous ne devriez pas supprimer toute cette information "superfurée". Le désérialiseur en a besoin de l'autre extrémité lorsque vous souhaitez reconstituer l'objet des données sérialisées. P>
essayez-vous simplement de convertir la chaîne en une matrice d'octets? Si tel est votre objectif, vous pouvez faire quelque chose de plus comme:
Toutes ces informations étrangères indiquent à l'autre formateur binaire (qui désérialisera l'objet) ce que em> type em> d'objet est désérialisé (dans ce cas, Si tout ce que vous voulez faire, c'est truc d'une chaîne dans un system.string code>). Selon le type, il inclut d'autres informations nécessaires pour reconstruire l'objet (par exemple, s'il s'agissait d'un
StringBuilder code>, la capacité
code> serait également encodé là-bas.
mémoire tampon Morthstream code>: p>
Remarque: le constructeur Streamwriter code> crée en interne une instance de
utf8encoding code> pour effectuer la conversion réelle en octets. Si tout ce dont vous avez besoin est un tableau d'octets correspondant à une chaîne, alors
Morthstream code> et
TextWriter code> ne sont pas réellement la solution - ils sont juste un moyen de coïncidence de créer implicitement la classe qui fournit la solution. Il suffit d'utiliser
encoding.utf8.getbytes code> directement - ou utilisez la classe de codage correcte pour le codage de caractères souhaité (UTF-8 est un bon choix par défaut).