经过多年处理旧 INI 文件的经验,我们最近开始使用 XML 文件。
我的同事发现了一些使用 System.Xml.XmlDocument.Save 的 CodeProject 示例代码。当两个程序尝试同时写入同一个文件时,我们会遇到异常。
System.IO.IOException:该进程无法访问文件“C:\Test.xml”,因为它正被另一个进程使用。
事后看来,这似乎很明显,但我们没有预料到,因为通过 Win32 API 访问 INI 文件没有这个限制。我假设 Win32 调用在比 XmlDocument.Save 方法更高的级别上完成了一些仲裁。
我希望.Net 库中的某个地方有更高级别的 XML 例程,它们的工作方式类似于 Win32 函数,但不知道从哪里开始寻找。
或者也许我们可以设置我们的文件访问权限以允许多个程序写入同一个文件?
时间很短(就像几乎所有的 SW 项目一样),如果我们不能快速找到解决方案,我们将不得不捂住鼻子并返回 INI 文件。