Есть ли лучший способ выполнить 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 из предметно-ориентированного языка, в противном случае подобные вещи будут простыми! Также я не могу изменить систему сборки, чтобы добавить еще один шаг)

Ответы на вопрос(4)

Ваш ответ на вопрос