如何同时从两个程序写入单个xml文件?

Tom*_*ell 0 c# xml ini

在使用旧的INI文件多年后,我们最近开始使用XML文件.

我的同事发现了一些使用System.Xml.XmlDocument.Save的CodeProject示例代码.当两个程序试图同时写入同一个文件时,我们会遇到异常.

System.IO.IOException:进程无法访问文件'C:\ Test.xml',因为它正由另一个进程使用.

事后看来这很明显,但我们没有预料到它,因为通过Win32 API访问INI文件没有这个限制.我假设Win32调用完成了一些仲裁,它们的工作级别高于XmlDocument.Save方法.

我希望.Net库中某处有更高级别的XML例程,它们与Win32函数类似,但不知道从哪里开始查找.

或者我们可以设置文件访问权限以允许多个程序写入同一个文件?

时间很短(就像几乎所有软件项目一样),如果我们无法快速找到解决方案,我们就必须抓住我们的鼻子并回到INI文件中.

Dav*_*vid 5

这不会起作用.即使这两个进程可以写入同一个文件,它也只会损坏您的文件.如果你真的需要同时编写多个程序,我会使用数据库代替.

或者您可以将单个XML文件拆分为单独的文件吗?让每个进程写入自己的文件,然后在"Read"方法中将所有文件组合在一起.