У меня есть два клиента, которые создают экземпляры IPAddress
из той же byte[]
и отправляют его на сервер через WCF (используя DataContractSerializer
).
На сервере эти экземпляры IPAddress
вставляются как ключи в словарь, но по какой-то причине они добавляются как разные ключи.
При регистрации я вижу, что они равны, но GetHashCode
возвращает разные результаты.
var client1Address = // sent from client1
var client2Address = // sent from client2
Console.WriteLine(client1Address.Equals(client2Address));
Console.WriteLine(client1Address.GetHashCode().Equals(client2Address.GetHashCode()));
Вывод:
true
false
Как могут равные экземпляры IPAddress
возвращать разные результаты GetHashCode
?