确定类是否已更改(不是对象)

时间:2015-04-14 11:48:38

标签: c# class caching hash

有没有办法确定构建类的代码是否已更改?就像检索某种内容的哈希一样。

我有很多用于生成文本文件的类。 目前我正试图找出一种方法让程序在运行时确定是否有人自上一代以来以任何方式更改了类(因此知道文件是否需要再次生成或者可以保留原样)。 / p>

示例:

  • 有人使用该程序并生成大量文件。构建缓存并将其另存为包含生成文件的每个类的缓存信息的文件。
  • 有人在几天后使用该程序并且没有任何更改,因此缓存会为每个文件确定不必重新生成它们。
  • 有人稍微更改了其中一个类,因此其输出应略有不同。
  • 下次有人使用该程序生成由更改的类创建的特定文件时,应重新生成。

我知道我可以使用某种递增版本的解决方案,但我真的希望它比这更聪明。即使只是在Visual Studio中进行调试,我也需要这个工作。

1 个答案:

答案 0 :(得分:1)

计算类文件的校验和(使用md5,sha1,sha2或任何你喜欢的),将它们存储在某处并在校验和不匹配的情况下重新生成类。

所有提到的算法实际上都是加密哈希,因此它们具有很强的抗冲突性。因此,意外校验和不匹配的可能性非常低。