Désérialisation d'un tableau d'octets
Si je voulais remplir une structure à partir d'un fichier binaire, je voudrais utiliser quelque chose comme ceci:
using (BinaryReader br = new BinaryReader(File.Open(filename, FileMode.Open)))
{
myStruct.ID = br.ReadSingle();
myStruct.name = br.ReadBytes(20);
}
Cependant, je dois lire tout le fichier dans un tableau d'octets avant la désérialisation, parce que je veux faire un pré-traitement. Est-il géré façon de remplir ma structure à partir du tableau d'octets, de préférence similaire à celui ci-dessus?
source d'informationauteur Joulukuusi
Vous devez vous connecter pour publier un commentaire.
C'est un exemple à prendre certaines données (en fait un Système.Les données.DataSet) et à la sérialisation d'un tableau d'octets, lors de la compression à l'aide de DeflateStream.
Voici le code dans le sens inverse pour désérialiser:
Espère que cette aide. Comme Nate implicite, nous utilisons MemoryStream ici.
Prendre un coup d'oeil à la BitConverter classe. Que pourrait faire ce dont vous avez besoin.
Pour de très simple des structures qui ne sont pas Sérialisables et ne contiennent que des types de base, cela fonctionne. Je l'utilise pour l'analyse des fichiers qui ont un format connu. La vérification d'erreur supprimé pour plus de clarté.
Les structures ont besoin d'être déclarée comme telle (et ne peut pas contenir des tableaux, je pense, n'ai pas essayé - endian swap serait probablement obtenir confus).