我编写了一个应用程序,它一度编写XML文档。稍后,将创建一个新对象,并且在代码的同一部分,XmlWriter
无法打开,因为我的程序仍然在使用该文件。在寻找答案时,我看到很多线程的答案是在创建CloseOutput
之前将XmlWriter
设置为true,并在using块中创建它。我已经做了这两件事,但仍有这个问题。
XmlWriterSettings xSettings = new XmlWriterSettings();
xSettings.Indent = true;
xSettings.IndentChars = "\t";
xSettings.CloseOutput = true;
using (XmlWriter xWriter = XmlWriter.Create(sOutputFileName, xSettings))
{
data.WriteContentTo(xWriter);
xWriter.Close();
}
有什么明显的东西我不见了吗?
答案 0 :(得分:4)
我之前见过类似的事情,也同样感到困惑。肯定看起来就像你的代码正在做正确的事情一样。话虽如此,我实际上无法重现现在的问题。 (我之前见过它......)
除非有人能解决正在发生的事情,否则这是我建议的解决方法:
var settings = new XmlWriterSettings { Indent = true, IndentChars = "\t" };
using (var stream = File.Create(sOutputFileName))
{
using (var writer = XmlWriter.Create(stream, settings))
{
data.WriteContentTo(writer);
}
}