如何确定Config已更改

时间:2016-02-05 11:11:54

标签: c# xml wpf configuration

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

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

我听说过保存哈希和东西的可能性。 但我不确定。 只是从UserInputs创建一个新的对象并将它与我从驱动器加载的对象显然不是一个解决方案......

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

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

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

1 个答案:

答案 0 :(得分:2)

  

我听说过保存哈希和东西的可能性。

这是您最快捷,最安全的解决方案。您可以生成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