私のコードがx64プロセスでホストされていたときに発生したバグによって、今週はうんざりでした。私は検索のためにハッシュ値を使用しており、データベースにそのハッシュ値を格納しています。過去に生成されたハッシュ値はx86ハッシュで、x64ハッシュが生成されているので、参照値がこれ以上一致しないためにエラーが発生しています。x64モードで実行しているときにx86ハッシュ値を生成できますか?
私はこれに非常に懐疑的ですが、私はとにかく尋ねると思いました。コードがx64プロセスで実行されている場合、x86ハッシュ値を生成する方法はありますか?
参考までに、私はC#で.NET 4.0を実行しています。
編集:
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode()
実行アプリ:あなたは次のコードでコンソールアプリケーションを作成することで問題を再現することができますString.GetHashCode() returns different values
:
ここで私はに実行してきた問題ですx86プラットフォームで実行し、x64プラットフォームで実行します。
プラットフォーム間で一貫した値を取得したいだけです。しかし、私はちょうど事前にコンパイルされたハッシュリストを作成して、必要なイベントでフェイルオーバーすることができます。 GetHashCode()から一貫した値を取得する方法があるかどうかを知りたかっただけです。私はそうは思わないが、可能ならば私の場合には最も簡単な解決策になるだろう。
x86およびx64ハッシュとは何ですか?ハッシュは、一般に、プラットフォームおよびプロセッサに関係なくアルゴリズムによって生成される。 – Joe
どのようにハッシュを生成していますか?コードを見ることはできますか? – kemiller2002
システム間で一貫した値が必要な理由をお知らせください。 – PeteT