【发布时间】:2009-11-05 16:57:54
【问题描述】:
在我开始之前,先简要概述一下我正在努力实现的目标,然后我们将深入探讨血淋淋的细节。目前我正在开发一个应用程序,它将监视用户注册表以更改与用户偏好相关的特定键。目前正在使用强制配置文件(不是我的选择),无论如何,整个想法是将更改记录到可以在下次登录时将更改写回用户注册表的位置。
目前,我有系统监视注册表更改并触发事件,返回已更改的键、值名称和值。我将这些输入到一个列表中以创建一个包含所有数据的字符串,然后每隔一段时间将该列表写入一个文本文件。现在这一切都很好,但我需要更改数据的保存方式,因为将字符串分解为键、值名称和值,以便再次写回注册表需要太多开销,并且还存在将字符串分解为唯一可识别的问题时尚。
所以有人建议我看看 XML,我以前没有使用过,我已经开始研究它,一切看起来都很简单,我之前也使用 LINQ 连接到嵌入式数据库。我目前正在努力解决的问题是 LINQ 如何能够从 XML 检索和操作内存中的数据,因为我不想因为需要保持应用程序的速度而不断访问 XML 文件尽可能。目前,注册表中的所有更改都缓存到一个 List(String) 中,然后每分钟左右写入一个文本文件。
目前我所拥有的是系统返回不同字符串中的键、值名称和值,将它们聚合成一个 List(String) 值,而我需要的是表或等效的表示一个键,它包含多个值名称,每个值名称包含一个值,最后是一个类型(这将是一个数字,表示这是什么类型的注册表值,REG SZ,REG BINARY 等)。在 XML 文件和它自己的程序中。
另外,我不太明白的是,与数据库不同,表和架构在程序首次运行之前不会存在,因为它将创建一个新的 XML 文件,而不是它已经存在。这是由于信息被写回用户个人驱动器,因此必须在首次在用户计算机上运行时创建。
我已经尝试了一些链接和教程等,但还没有点击,所以如果你有一个例子或者可以更好地向我解释一下,我们将不胜感激。
我想补充的最后一点是,我目前在程序中存储数据的想法是创建一个值列表,嵌入在值名称列表中,并在键列表中嵌入值名称列表。听起来可以吗?
现在我知道这很长,而且到处都是,所以如果有人可以提供帮助,我们将不胜感激,或者如果您需要进一步的澄清信息,请告诉我,我会尽力而为。
谢谢
【问题讨论】:
标签: c# xml linq registry linq-to-xml