Thursday, March 3, 2011

End of Stream encountered before parsing was completed?

I am trying to deserialize a stream but I always get this error "End of Stream encountered before parsing was completed"?

Here is the 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

Any one have ideas?

From stackoverflow
  • Try to set the position to 0 of your stream and do not use your object but the object type.

            BinaryFormatter b = new BinaryFormatter();
            s.Position = 0;
            return (YourObjectType)b.Deserialize(s);
    
  • Make sure the serialization completed, and that the serialization type matches the de-serialization type (i.e., make sure you're serializing with a BinaryFormatter if you're de-serializing with one). Also, make sure that the stream you serialized to really finished serializing, with a Stream.Flush() or something to that effect.

    Nippysaurus : +1 Put a try/catch around your serialization code.
  • s.Position = 0;

    this is because you have to go to the start back to start copying data on the array!

    Simple question! regards!

0 comments:

Post a Comment