我有一个简单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(如预期的那样)。幸运的是,如果需要,可以重新生成存储在设置中的数据,这样我就可以删除文件并再次保存(但在它为我保存一份副本之前,我可以尝试找出问题所在)
该问题似乎与正在捕获或记录的任何其他错误或问题无关。
有人有什么想法吗?或者甚至以前见过这个?