我有一种方案,其中服务器端代码在x86环境中运行,而客户端在x64环境中运行。发生问题的原因是我们使用String.GetHashCode()标识HashTable中的对象,因为“ GetHashCode的行为取决于其实现,它可能会从一种公共语言运行时版本更改为另一种版本。” -MSDN。我使用了不安全的代码从以下堆栈溢出问题中创建了x86等效的GetHashCode():Can I depend on the values of GetHashCode() to be consistent?。
我有几个问题:
是否建议将不安全的代码留在托管代码世界中。
如何将上述问题中的不安全代码转换为安全代码。
最佳答案
创建和扩展方法,该方法为提供的字符串生成一个HashCode,以便即使在不同的环境(x86或x64)中执行客户端和服务器时也是如此。
关于c# - 为String.GetHashCode()创建重载以在x86和x64环境中返回相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5319209/