PersistSettings というメソッドに引数として単純ObjectToSerialize settings
に渡されたものがあります (参考までに、ObjectToSerialize には dateTime プロパティの 1 つのプロパティしかありません)。
その 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 が発生します。幸いなことに、設定に保存されているデータは必要に応じて再生成できるため、ファイルを削除して再度保存することができます (ただし、コピーを保存する前に問題を解決できるようにする必要があります)。
この問題は、キャプチャまたはログに記録されている他のエラーや問題に関連付けられていないようです。
誰でもアイデアはありますか?または、これまでにこれを見たことがありますか?