【发布时间】:2017-10-12 08:50:19
【问题描述】:
我在 WPF 中有 2 个按钮。
第一个将信息写入 XML 第二个将它恢复到一个列表中
写函数:
public static void Write(List<string> numbers) {
XmlWriterSettings myWriterSettings = new XmlWriterSettings();
myWriterSettings.CloseOutput = true;
myWriterSettings.NewLineOnAttributes = true;
using (XmlWriter myWriter = XmlWriter.Create(XMLPathRestore, myWriterSettings)) {
myWriter.WriteStartDocument();
myWriter.WriteStartElement("Something");
//Writing numbers into XML
myWriter.WriteEndElement();
myWriter.WriteEndDocument();
myWriter.Close();
}
}
读取功能:
public static List<string> Read() {
List<string> numbers = new List<string>();
XmlReaderSettings myReaderSettings = new XmlReaderSettings();
myReaderSettings.CloseInput = true;
if (File.Exists(XMLPath) == true) {
XmlReader myReader = XmlReader.Create(XMLPath, myReaderSettings);
while (myReader.Read()) {
//Fill List<string> numbers from XML
}
}
return concernNumbers;
}
当我现在交替读写几次后,我会得到一个 System.IO.IOException,它告诉我该进程无法访问 XML 文件,因为它被另一个进程使用。
我认为我可以通过在编写器和阅读器上将 CloseInput 设置为 true 来处理此问题,但它不起作用。
有人有想法吗?
【问题讨论】:
-
您是否在其他地方打开 XML 文件?
标签: c# ioexception xmlreader xmlwriter