Fin du stream rencontré avant la fin de l’parsing?

J’essaye de désérialiser un stream mais j’obtiens toujours cette erreur “Fin de stream rencontrée avant que l’parsing ne soit terminée”?

Voici le code:

//Some code here BinaryFormatter b = new BinaryFormatter(); return (myObject)b.Deserialize(s);//s---> is a Stream object that has been fill up with data some line over here 

Quelqu’un a des idées?

Essayez de définir la position sur 0 de votre stream et n’utilisez pas votre object mais le type d’object.

  BinaryFormatter b = new BinaryFormatter(); s.Position = 0; return (YourObjectType)b.Deserialize(s); 

Assurez-vous que la sérialisation est terminée et que le type de sérialisation correspond au type de désérialisation (par exemple, assurez-vous que vous sérialisez avec un BinaryFormatter si vous en désérialisez un). En outre, assurez-vous que le stream que vous avez sérialisé a vraiment fini de se sérialiser, avec un Stream.Flush () ou quelque chose à cet effet.

 s.Position = 0; 

C’est parce que vous devez aller au début pour commencer à copier les données sur le tableau!

Dans mon cas, j’ai utilisé:

 stream.Seek(0, SeekOrigin.Begin); 

après avoir sérialisé le stream, et avant de désérialiser le stream fonctionne charme. J’espère que cela t’aides!

J’ai eu la même exception jusqu’à ce que j’ajoute le tag [Serializable] à la classe que je sérialisais 🙂

Ensuite, tout a parfaitement fonctionné.

Vérifiez que vous avez

 [Serializable] 

Au dessus de ta classe

ainsi:

 [Serializable] Public void SomeClass{ } 

Je viens de rencontrer une erreur similaire

Il s’agissait d’obtenir un type de données différent lors de la sérialisation et de la désérialisation. Par erreur, lors du stockage des données sur mariadb, j’ai utilisé MediumText et lors de l’obtention des données que j’ai utilisées, c’est pourquoi je n’ai reçu qu’une partie du stream.

Vérifiez simplement si les types de données sont les mêmes.