分析完成之前遇到的stream结束?

我正在尝试反序列化一个stream,但我总​​是得到这个错误“分析完成之前遇到的stream结束”?

这里是代码:

//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 

任何人有想法?

尝试设置您的stream的位置为0,不要使用您的对象,但对象types。

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

确保序列化已完成,并且序列化types与反序列化types相匹配(即,如果您正在使用一个序列化序列化types,请确保您使用BinaryFormatter序列化)。 此外,请确保您序列化的stream真正完成序列化,与Stream.Flush()或类似的东西。

 s.Position = 0; 

这是因为你必须回去开始复制数组上的数据!

在我的情况下,我用:

 stream.Seek(0, SeekOrigin.Begin); 

在我序列化stream之后,在我将序列化stream作品魅力之前。 希望这可以帮助!

我有同样的exception抛出,直到我添加了[序列化]标签的类我序列化:)

然后,这一切都完美。