我想我会完全解释我的情况。我有一个桌面应用程序,可以读取和写入XML文件。 ASP站点读取和写入相同的XML文件。当值发生变化时,双方都需要得到通知。这在桌面应用程序方面相对微不足道,因为我只是重新阅读XML并应用这些值,但它在Web方面变得更加复杂。
网站需要立即从XML获取更新的信息。问题是我无法找出存储这些值的正确方法,而是处理更新/更改/新/删除值的通知。发送整个XML文件是不可能的。
将数据发送到页面不是问题,我已将所有数据都连接起来。问题是我应该如何存储这些数据,以便能够处理增量更新并获得更改值的通知?
我有一个非常笨重的解决方案,我绝对讨厌它。我希望有人可以指出我正确的方向,以确定存储这些数据的容器类型;我在C#/ ASP领域相对缺乏经验。
感谢您抽出宝贵时间阅读我的小说。
答案 0 :(得分:0)
网站“立即”获取更新是什么意思?代码通常只在下一个请求时执行(无论何时发生)。所以在每次请求时你都可以(但不要!)只读取文件的最新副本。
在一般架构术语中,如果您需要像这样协调2个组件/应用程序 - 消息队列是自然抽象。现在,您正在将XML文件视为共享内存,以进行进程间通信。
如果它仍然是类似解决方案的kludge - 我建议用DB表替换XML。更容易轮询,协调和接收更新。
答案 1 :(得分:0)
好吧,我找到了一个解决方案。
我将“当前”XML的副本保留为具有正确类型的XmlSerializer。当我读取新的XML时,我也将其作为XmlSerializer读取,但为了比较它们,我只是JSON,并进行标准的字符串比较。
这对我有用,因为我的XML结构永远不会改变,只是内部的值,所以我可以通过比较它们的序列化JSON来检查哪些“部分”已经改变。
有点奇怪,但它对我有用。