在运行时计算类代码的哈希值(C#)?

是否有可能在C#中运行时计算类的哈希值(可能是通过reflection)? 为了清楚起见,我不想计算所述类的实例的哈希码,我想计算类代码本身的哈希值(如果类中的函数发生变化,我希望不同的哈希码是计算)。 理想情况下,这只会对目标代码中的更改敏感(而不仅仅是代码本身的字符串表示的哈希)。

在此先感谢您的帮助,

– 布雷克

如果你有Type你可以使用GetMethod来获取MethodInfo一个实例,而MethodInfo又有一个GetMethodBody ,它返回所述方法的IL。 然后你可以哈希那个。

我好奇。 你为什么要首先这样做?

您不需要使用reflection。 您可以尝试System.Type.GetHashCode() 。 我不确定它是如何工作的,如果不是最优的,那么你总是可以使用type.FullName.GetHashCode()