分析完成之前遇到的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抛出,直到我添加了[序列化]标签的类我序列化:)
然后,这一切都完美。