4

我有一个简单ObjectToSerialize settings的作为参数传递给一个名为 PersistSettings 的方法(作为参考 ObjectToSerialize 只有一个属性 - 一个 dateTime 属性)

在那,PersistSettings 方法,我有代码来序列化 ObjectToSerialize 对象,如下所示

var serializer = new XmlSerializer(typeof(ObjectToSerialize));
using (var stream = File.OpenWrite(filePath))
{
     serializer.Serialize(stream, settings);
}

时不时地,持久化的 xml 是无效的。它始终以相同的方式无效 - 文档末尾的额外 > 。所以我得到:

<?xml version="1.0"?>
<ObjectToSerialize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Item>Important piece of data</Item>
</ObjectToSerialize>>

然后,当我尝试读取 xml 时,我得到一个 InvalidOperationException(如预期的那样)。幸运的是,如果需要,可以重新生成存储在设置中的数据,这样我就可以删除文件并再次保存(但在它为我保存一份副本之前,我可以尝试找出问题所在)

该问题似乎与正在捕获或记录的任何其他错误或问题无关。

有人有什么想法吗?或者甚至以前见过这个?

4

0 回答 0