在运行时计算类代码的哈希值(C#)?
是否有可能在C#中运行时计算类的哈希值(可能是通过reflection)? 为了清楚起见,我不想计算所述类的实例的哈希码,我想计算类代码本身的哈希值(如果类中的函数发生变化,我希望不同的哈希码是计算)。 理想情况下,这只会对目标代码中的更改敏感(而不仅仅是代码本身的字符串表示的哈希)。
在此先感谢您的帮助,
– 布雷克
如果你有Type
你可以使用GetMethod
来获取MethodInfo
一个实例,而MethodInfo
又有一个GetMethodBody
,它返回所述方法的IL。 然后你可以哈希那个。
我好奇。 你为什么要首先这样做?
您不需要使用reflection。 您可以尝试System.Type.GetHashCode()
。 我不确定它是如何工作的,如果不是最优的,那么你总是可以使用type.FullName.GetHashCode()