このオープンソースライブラリがあり、問題の修正に問題があります...このライブラリを使用すると、アプリケーション設定を保存するためのXMLファイルを簡単に作成できます。しかし、変更の保存に問題があります。
このライブラリを使用している別のアプリケーションがあり、そのアプリケーションウィンドウのサイズ変更が完了するたびに、ライブラリのSave()メソッドを呼び出して、ウィンドウのサイズ/位置をXMLファイルに保存します。
ほとんどの場合、正常に動作し、すべてが保存されます。ただし、ファイルが別のプロセスで使用されているという例外が発生することがあります。
Save()メソッドが呼び出されるたびに変更が保存されることを確認する必要があります。この例外を何らかの方法で処理するか、発生しないようにする必要があります。
この状況を最もうまく処理するための皆さんの提案は何ですか?
Save()メソッドのコードは次のとおりです。
public void Save() {
// Create a new XML file if there's no root element
if(xDocument.DocumentElement == null) {
xDocument = new XmlDocument();
xDocument.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
"<" + XmlRootElement + ">\n</" + XmlRootElement + ">");
}
// OMITTED CODE WAS HERE (NOT IMPORTANT FOR THE PROBLEM)
// Create a new XML writer for the XML file
XmlWriter xWriter = XmlWriter.Create(XmlFilePath, new XmlWriterSettings() {
Indent = true,
IndentChars = "\t"
});
// Sort the XML file using the XSL sylesheet and save it
xslTransform.Transform(xDocument, xWriter);
// Clear the buffer and close the XML writer stream
xWriter.Flush();
xWriter.Close();
}