我正在开发一个应用程序,该应用程序读取并编辑 xml 文件,但使用 XDocument 类 Load() 和 Save() 方法。如果另一个应用程序或我的应用程序的另一个实例正在运行,则一个文档可能会覆盖另一个文档在内存中所做的更改(如果 xdocument 未持续更新(重新加载))。同时运行的程序永远不会同时编辑 xml 文件的同一部分。解决这个问题的最佳方法是什么?我应该在进行每个更改之前进行加载还是有更优雅的方法?
最佳答案
最好的解决方案是不使用 XML。
使用(小型)数据库。
在多用户情况下使用任何类型的文本文件都非常困难,并且只有在拥有固定长度和(因此)固定位置记录(行)的情况下,才能将其用于不同的部分,这一事实才能有利可图。 XML 不提供此功能。
进行编辑前加载只会减少问题出现的频率。更改总是有可能丢失,您将在文件系统级别遇到竞争条件。为了使其工作,您必须使用带有锁定文件的方案。为此,您将需要一个额外的文件。
关于c# - 在 C# 中同时编辑 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4251138/