【问题标题】:Issue with XmlDocument Open XML file directly after using throws exception使用引发异常后直接打开 XML 文件的 XmlDocument 问题
【发布时间】:2016-02-29 20:46:26
【问题描述】:

我的 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”,因为它已被另一个进程使用。

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

亲切的问候

【问题讨论】:

    标签: c# xmldocument


    【解决方案1】:

    您没有处理您的文件流。尝试像这样更改您的代码。

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

    【讨论】:

    • 我认为处理 XmlWriter 会自动处理 FileStream。但我试过了,你是对的,谢谢!
    猜你喜欢
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多