在x64模式下运行时,是否可以生成x86哈希值?

本周,当我的代码在x64进程中托管时,我发现了一个错误。 我使用哈希值进行查找,我将该哈希值存储在数据库中。 过去生成的哈希值是x86哈希值,现在正在生成x64哈希值,因为查找值不再匹配,我收到错误。

我对此持高度怀疑态度,但无论如何我还以为我会问。 如果我的代码在x64进程中运行,有没有办法生成x86哈希值?

作为参考,我使用C#在.NET 4.0上运行。

编辑:

这是我遇到的问题: String.GetHashCode()返回不同的值

您可以通过使用以下代码创建控制台应用程序来复制问题:

"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() 

使用x86平台运行应用程序,然后使用x64平台运行它。

我只想在不同平台上获得一致的价值观。 但是,我可能只是创建一个预编译的哈希列表,以便我可以在需要的时候进行故障转移。 我只是想知道是否有办法从GetHashCode()获得一致的值。 我不这么认为,但如果可能的话,这将是我个案中最简单的解决方案。

我担心如果你在.NET中使用默认实现,那么这是不可能的。 他们甚至不保证它会在不同版本的.NET之间返回相同的id; 并明确声明它不能用作唯一标识符。 在MSDN上阅读此内容