为什么我的XmlWriter会保留其文件流?

时间:2013-02-14 16:56:52

标签: c# .net xmlwriter

我编写了一个应用程序,它一度编写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();
}

有什么明显的东西我不见了吗?

1 个答案:

答案 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);
    }
}