c# - 在 C# 中同时编辑 xml 文件

标签 c# xml linq-to-xml overwrite

我正在开发一个应用程序,该应用程序读取并编辑 xml 文件,但使用 XDocument 类 Load() 和 Save() 方法。如果另一个应用程序或我的应用程序的另一个实例正在运行,则一个文档可能会覆盖另一个文档在内存中所做的更改(如果 xdocument 未持续更新(重新加载))。同时运行的程序永远不会同时编辑 xml 文件的同一部分。解决这个问题的最佳方法是什么?我应该在进行每个更改之前进行加载还是有更优雅的方法?

最佳答案

最好的解决方案是不使用 XML。

使用(小型)数据库。

在多用户情况下使用任何类型的文本文件都非常困难,并且只有在拥有固定长度和(因此)固定位置记录(行)的情况下,才能将其用于不同的部分,这一事实才能有利可图。 XML 不提供此功能。

进行编辑前加载只会减少问题出现的频率。更改总是有可能丢失,您将在文件系统级别遇到竞争条件。为了使其工作,您必须使用带有锁定文件的方案。为此,您将需要一个额外的文件。

关于c# - 在 C# 中同时编辑 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4251138/

相关文章:

c# - 无法捕捉屏幕

java - 使用 Xerces 2 防止 XXE(外部 XML 实体)注入(inject)

java - 切换 LinearLayout 的不可见和可见

c# - 手动迭代选择的 XML 元素(C#、XDocument)

c# - 如何区分不同的值(value)观?

c# - .NET (PowerShell) 并发文件使用(锁定,同时仍允许读取访问)

c# - ConfigurationManager.ConnectionStrings ["aaa"].ConnectionString 将 127.0.0.1 替换为 localhost

c# - 为什么图像不显示在 GridView 中?

C# 从另一个 XML 创建嵌套的 XML

c# - 用于使用 .NET Core 的多个框架的编译器指令