【问题标题】:How to deserialize all Soap serialized objects如何反序列化所有 Soap 序列化对象
【发布时间】:2012-06-11 08:16:01
【问题描述】:

我正在肥皂序列化多个对象并将它们附加到一个文件中,然后我将所有对象反序列化为树视图

我正在使用这部分反序列化代码

FileStream fs = new FileStream(fName, FileMode.Open);
while (fs.Position < fs.Length)
{
    arraylizt.Add(sf.Deserialize(fs));
}

效果很好,但有时文件中的最后一个对象没有反序列化。
我不明白为什么它有时不反化最终对象

请帮助我或建议我任何其他反序列化方式

【问题讨论】:

  • 你能写更多代码吗?问题可能会出现在更高的层次上。
  • 我不认为问题可能出在更高级别我用于序列化的以下代码 FileStream fs = new FileStream(fName, FileMode.Append); SoapFormatter sf = new SoapFormatter(); foreach (临时对象项) { sf.Serialize(fs, item); } fs.Close();请帮帮我
  • 我已经进入调试模式,如果对象图在位置 82772 结束但位置指向 89532 跳过最后一个对象,则在反序列化某些对象后,我看到文件流位置指向文件末尾反序列化。

标签: c# soap-serialization


【解决方案1】:

您是否确保在关闭之前在写入时刷新了流(或关闭了编写器而不是基础流)。

【讨论】:

  • 在关闭之前我没有刷新我的流你建议如果这样的话它会解决问题我现在试试....
  • 应该这样做,有一个写入缓冲区(当您使用流时),它不会写入,直到达到一定大小。试试看!
  • 我已经尝试在关闭流之前刷新问题仍然存在
  • 我已经进入调试模式,如果对象图在位置 82772 结束但位置指向 89532 跳过最后一个对象,则在反序列化某些对象后,我看到文件流位置指向文件末尾反序列化。
猜你喜欢
  • 1970-01-01
  • 2011-02-27
  • 2015-06-28
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
相关资源
最近更新 更多