Создание перегрузки для String.GetHashCode () для возврата одинакового значения в средах x86 и x64 - PullRequest
3 голосов
/ 16 марта 2011

У меня есть сценарий, в котором мой код на стороне сервера работает в среде x86, где на стороне клиента работает в x64.Проблема заключается в том, что мы используем String.GetHashCode () для идентификации объектов в HashTable, поскольку «Поведение GetHashCode зависит от его реализации, которая может меняться от одной версии общеязыковой среды выполнения к другой». -MSDN.Я использовал небезопасный код для создания x86-эквивалентного GetHashCode () из следующего вопроса о переполнении стека: Могу ли я зависеть от того, чтобы значения GetHashCode () были согласованными? .

У меня было нескольковопросы:

  1. Рекомендуется ли оставлять небезопасный код в мире управляемого кода.
  2. Как преобразовать небезопасный код из вышеупомянутого вопроса в безопасный код.

1 Ответ

1 голос
/ 17 марта 2011

Создан и метод расширения, который генерирует HashCode для предоставленной строки, чтобы он был одинаковым, даже если клиент и сервер выполняются в разных средах (x86 или x64).

...