如何确定 Config 已更改

How to determine a Config changed

在处理配置时,查明用户是否更改了配置中某些内容的最佳方法是什么。

我需要这个来确定我是否应该显示一个 MessageBox 来请求保存。

我听说过可以保存哈希值之类的东西。 但我不确定。 仅仅从 UserInputs 中创建一个新对象并将其与我从驱动器加载的对象进行比较显然不是一个解决方案...

当然可以通过比较每个 属性 新旧的每个值来完成,但是由于配置可能变得非常庞大,这不是一个干净的解决方案。

那么最常见和最实用的方法是什么?

提示:我将配置保存为 XML。

I have heard of the possibility of saving hashes and stuff.

这是最快、最安全的解决方案。您可以生成 MD5 或 SHA,并且只要您的配置文件发生更改,您就可以创建一个名为 "my.config.[SHA hash].sha" 的文件或创建一个名为 "config.hashes":

的文件
<hashes>
   <hash file="my.config">[SHA hash]</hash>
</hashes>

在我的例子中,我会以 JSON 格式存储文件:

[
   { file: "my.config", hash: "[SHA hash]" }
]

// or just...

{
   "my.config": "[SHA hash]"
}

您可能想看一看 FileSystemWatcher class