1

我编写了一个应用程序,该应用程序有时会编写一个 XML 文档。后来,创建了一个新对象,并且在代码的同一部分,XmlWriter无法打开该文件,因为我的程序仍在“使用”该文件。在寻找答案时,我看到很多线程在CloseOutput创建之前将答案设置为 true XmlWriter,并在 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();
}

我有什么明显的遗漏吗?

4

1 回答 1

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);
    }
}
于 2013-02-14T17:01:33.487 回答