0

我想我会直截了当地解释我的情况。我有一个读取和写入 XML 文件的桌面应用程序。同样的 XML 文件由 ASP 站点读取和写入。当值发生变化时,双方都需要得到通知。这在桌面应用程序端相对微不足道,因为我只是重新读取 XML 并应用值,但是在 Web 端它变得更加复杂。

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

将数据获取到页面不是问题,我已经将所有这些都连接起来了。问题是我应该如何存储这些数据以便能够处理增量更新并收到更改值的通知?

我有一个非常笨拙的解决方案,我非常讨厌它。我希望有人可以为我指出正确的方向,即存储这些数据的容器类型;我在 C#/ASP 的这个领域相对缺乏经验。

感谢您花时间阅读我的小说。

4

2 回答 2

0

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

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

这对我有用,因为我的 XML 结构永远不会改变,只是里面的值,所以我可以通过比较它们的序列化 JSON 来检查哪些“部分”发生了变化。

有点奇怪,但它对我有用。

于 2013-06-18T21:14:05.670 回答
0

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

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

如果它仍然是一个像解决方案一样的杂乱无章的解决方案 - 我建议用 DB 表替换 XML。更容易轮询、协调和接收更新。

于 2013-06-18T18:52:48.393 回答