1

我正在使用以下代码来修改可以从多个进程中使用的 XML 文件

using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
    var d = XDocument.Load(fs);
    d.Descendants("TestNode").FirstOrDefault().Descendants("MyInfo").FirstOrDefault().Attribute("Id").Value = "Tested Successfully";
    XElement x1 = new XElement(new XElement("PoolId", "A91"));
    d.Root.Add(x1);
    fs.Seek(0, SeekOrigin.Begin);
    d.Save(fs);
}

此方法位于 LOCK 对象内部。

现在,我总是想覆盖 XML 文件的内容,所以我使用了

fs.Seek(0, SeekOrigin.Begin);

这是正确的吗?有没有更好的办法?

4

1 回答 1

1

已经保存覆盖,您无需调用 Seek。

你在用 XElement 做什么?

new XElement(new XElement("PoolId", "A91"));

只能读

new XElement("PoolId", "A91");
于 2012-04-24T15:17:07.557 回答