C# 如何反序列化所有Soap序列化对象
我正在对多个对象进行soap序列化,并将它们附加到一个文件中,然后我希望将所有对象都序列化到树视图中 我使用的是欲望化代码的这一部分C# 如何反序列化所有Soap序列化对象,c#,soap-serialization,C#,Soap Serialization,我正在对多个对象进行soap序列化,并将它们附加到一个文件中,然后我希望将所有对象都序列化到树视图中 我使用的是欲望化代码的这一部分 FileStream fs = new FileStream(fName, FileMode.Open); while (fs.Position < fs.Length) { arraylizt.Add(sf.Deserialize(fs)); } FileStream fs=newfilestream(fName,FileMode.Open);
FileStream fs = new FileStream(fName, FileMode.Open);
while (fs.Position < fs.Length)
{
arraylizt.Add(sf.Deserialize(fs));
}
FileStream fs=newfilestream(fName,FileMode.Open);
而(fs.位置
它工作得很好,但有时文件中的最后一个对象并不理想化。我不明白为什么有时候它不渴望最终的目标
请帮助我或向我建议任何其他反序列化方法。您是否确保在关闭前写入流时刷新了流(或关闭了写入程序而不是底层流)。您是否可以提供更多代码?问题可能出现在更高的级别上。我不认为问题可能出现在更高的级别上,我正在使用以下用于序列化的代码FileStream fs=newfilestream(fName,FileMode.Append);SoapFormatter sf=新的SoapFormatter();foreach(temp中的对象项){sf.Serialize(fs,item);}fs.Close();请帮助meI进入调试模式,我看到文件流位置指向文件末尾,在反序列化某些对象后,如果对象图结束于位置82772,但位置指向89532,跳过最后一个要反序列化的对象。在关闭r u之前,我没有刷新流,建议是否解决问题,如果是,我会这样做现在试试……应该可以,有一个写缓冲区(当您使用流时),它在达到一定大小之前不会写。试试看!我在关闭流之前尝试过刷新问题仍然存在我已经进入调试模式,并且我看到文件流位置在反序列化某些对象后指向文件的末尾,如果对象图在位置82772处结束,但位置指向89532跳过最后一个要反序列化的对象。