4

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 が発生します。幸いなことに、設定に保存されているデータは必要に応じて再生成できるため、ファイルを削除して再度保存することができます (ただし、コピーを保存する前に問題を解決できるようにする必要があります)。

この問題は、キャプチャまたはログに記録されている他のエラーや問題に関連付けられていないようです。

誰でもアイデアはありますか?または、これまでにこれを見たことがありますか?

4

0 に答える 0