Есть ли лучший способ выполнить Equals для объекта с большим количеством полей?
смотрите такжеКак быстро проверить, если передача данных двух объектов имеют одинаковые свойства в C #?
У меня есть много объектов передачи данных (DTO), каждый из которых содержитмного простых полей, Мне нужно реализовать Equals на всех из них (чтобы я мог написать несколько тестов модулей для транспортировки их var WCF).
Код, который я использую:
public override bool Equals(object rhs)
{
RequestArguments other = rhs as RequestArguments;
return
other != null &&
other.m_RequestId.Equals(RequestId) &&
other.m_Type.Equals(m_Type) &&
other.m_Parameters.Equals(m_Parameters) &&
other.m_user.Equals(m_user);
}
Должен быть лучший способ! ... (перечисление всех полей скорее вызывает ошибки и проблемы с обслуживанием)
Например. У нас есть Объект. MemberwiseCl, one (), чтобы помочь с делом Cloning (), но я не могу найти ничего, чтобы помочь с Equals. Мы работаем в полном доверии, поэтому решение на основе рефлексии - один из ответов, но я не буду изобретать велосипед.
(Извините, мы не генерируем DTO из предметно-ориентированного языка, в противном случае подобные вещи будут простыми! Также я не могу изменить систему сборки, чтобы добавить еще один шаг)