使用引发异常后直接出现 XmlDocument 打开 XML 文件的问题

本文关键字:打开 XmlDocument XML 文件 问题 异常 | 更新日期: 2023-09-27 18:36:39

我的XmlDocument类有一个奇怪的问题。

我用它写了一些XML文件,效果很好。我有 Save() 方法:

public void Save()
{
    var xwSettings = new XmlWriterSettings
    {
        Encoding = new UTF8Encoding(false),
        Indent = true,
        IndentChars = "'t"
    };
    using (XmlWriter xw = XmlWriter.Create(new FileStream(this.FilePath, FileMode.Create), xwSettings))
    {
        XmlDocument.WriteTo(xw);
    }
}

就像大家看到的那样,我正在使用"使用",这应该给 xml 免费:)但是如果我尝试在调用 Save() 后直接读取此文件,则会出现异常:

进程无法访问文件"___.xml",因为它已被另一个进程使用。

有人可以向我解释并给我一个解决方案吗?

亲切问候

使用引发异常后直接出现 XmlDocument 打开 XML 文件的问题

您不会释放文件流。尝试像这样更改代码。

        using (var xmlStream = new FileStream(this.FilePath, FileMode.Create))
        {
            using (XmlWriter xw = XmlWriter.Create(xmlStream, xwSettings))
            {
                var xDoc = new XmlDocument();
                xDoc.WriteTo(xw);
            }
        }