【问题标题】:How to Load Xml file whilelocking it using XDocument.Load() method?如何在使用 XDocument.Load() 方法锁定的同时加载 Xml 文件?
【发布时间】:2015-11-02 15:47:01
【问题描述】:

我正在使用以下两个代码来加载 XML。当我尝试加载它时,其他一些进程正在更新相同的 XML。这两种情况下都给我以下错误:-

进程无法访问文件 'D:\Projects\WriteOnXml\Xml\test.xml' 因为它正被 另一个进程。

1)

using (FileStream xml = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    XDocument xdoc = XDocument.Load(xml);       
}

2)

using (StreamReader sr = new StreamReader(dest))
{
    xdoc = XDocument.Load(sr);
}

我想在它被其他进程更新时加载它。 任何更好的方法。

【问题讨论】:

  • 文件被其他进程锁定是不可能的。
  • 即使您可以通过两侧的文件共享标志开始读取文件,当然如果一个进程正在写入文件,那么此时它不太可能是有效的 XML。想出一些不必这样做的方法会更好。
  • @Oday : - 不,我无权访问正在更新它的代码。

标签: c# xml


【解决方案1】:

看看这个问题: c# xml.Load() locking file on disk causing errors

看来,如果你可以使用 xml 文档,它会工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多