Вы должны абсолютно не использовать GetHashCode()
для этого. документация прямо заявляет:
. Кроме того, .NET Framework не гарантирует реализацию по умолчанию метода GetHashCode, и возвращаемое значение будет одинаковым для разных версий.NET Framework.
Результаты GetHashCode
могут изменяться между запусками - все, что гарантировано, это вызов его для двух равных объектов в одном и том же процессе (возможно, AppDomain)даст тот же хэш-код.Действительно, алгоритм String.GetHashCode
изменил с течением времени, а в .NET 4 32-разрядная реализация отличается от 64-разрядной реализации.
Если вы хотите использовать хеширование, используйте MD5, SHA1 и т. д. - что-то с указанным алгоритмом, который не изменит .(Обратите внимание, что эти операции над двоичными данными, а не строковыми данными, что, вероятно, также более уместно - вам не нужно беспокоиться о декодировании данных в виде текста.)
Мне не ясно, периодически ли выполняется повторное получение действительно лучшая идея, хотя - эти серверы не поддерживают время последнего изменения, etags и т. Д.