У меня есть эта библиотека с открытым исходным кодом, у меня возникли проблемы с решением проблемы ... Эта библиотека позволяет легко создавать 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();
}