Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改XML值的通知_C#_Xml_Asp.net Mvc_Data Structures_Dataset - Fatal编程技术网

C# 更改XML值的通知

C# 更改XML值的通知,c#,xml,asp.net-mvc,data-structures,dataset,C#,Xml,Asp.net Mvc,Data Structures,Dataset,我想我会尽全力解释我的处境。我有一个桌面应用程序,可以读取和写入XML文件。这个XML文件由ASP站点读写。当值发生变化时,需要通知双方。这在桌面应用程序端相对来说是微不足道的,因为我只是重新读取XML并应用值,但是在web端它会变得更复杂 网站需要立即从XML获取更新的信息。问题是我无法找到一种正确的方法来存储这些值,并反过来处理更新/更改/新/删除值的通知。发送整个XML文件是不可能的 把数据放到页面上不是问题,我已经准备好了。问题是,我应该如何存储这些数据,以便能够处理增量更新,并获得更改

我想我会尽全力解释我的处境。我有一个桌面应用程序,可以读取和写入XML文件。这个XML文件由ASP站点读写。当值发生变化时,需要通知双方。这在桌面应用程序端相对来说是微不足道的,因为我只是重新读取XML并应用值,但是在web端它会变得更复杂

网站需要立即从XML获取更新的信息。问题是我无法找到一种正确的方法来存储这些值,并反过来处理更新/更改/新/删除值的通知。发送整个XML文件是不可能的

把数据放到页面上不是问题,我已经准备好了。问题是,我应该如何存储这些数据,以便能够处理增量更新,并获得更改值的通知

我有一个非常笨拙的解决方案,我绝对讨厌它。我希望有人能给我指出正确的方向,告诉我应该用什么类型的容器来存储这些数据;我在C#/ASP这方面相对缺乏经验


谢谢你抽出时间来读我的小说

网站“立即”更新是什么意思?代码通常只在下一个请求(无论何时)出现时在那里执行。因此,对于每个请求,您都可以(但不能!)读取文件的最新副本

在一般的架构术语中,如果您需要两个组件/应用程序这样协调,那么消息队列就是自然的抽象。现在,您将XML文件视为执行进程间通信的共享内存


如果它仍然是一个混乱的解决方案,我建议用DB表替换XML。投票、协调和接收更新更容易。

嗯,我找到了一个解决方案

我保留了一份“当前”XML的副本,作为具有适当类型的XmlSerializer。当我阅读新的XML时,我也会将其作为XmlSerializer读入,但为了比较它们,我只需要对每个XML使用JSON并进行标准字符串比较

这对我来说很有用,因为我的XML结构从不改变,只改变其中的值,所以我可以通过比较序列化的JSON来检查哪些“部分”已经改变


有点奇怪,但它对我来说很有效。

我完全同意使用合适的数据库,但不幸的是,我无法控制桌面应用程序。我使用的是信号器库(websockets),所以我可以通过将更改推出来立即通知任何客户机。正如您所说的,我正试图避免发送整个XML文件(在发送之前,我将使用我的“kludy”解决方案)。