Qual é o algoritmo usado pelo teste de igualdade de membros nas estruturas do .NET?

Qual é o algoritmo usado pelo teste de igualdade de membros nas estruturas do .NET? Eu gostaria de saber isso para poder usá-lo como base para meu próprio algoritmo.

Eu estou tentando escrever um teste de igualdade de membro recursiva para objetos arbitrários (em c #) para testar a igualdade lógica de DTOs. Isso é consideravelmente mais fácil se os DTOs forem estruturas (já que o ValueType.Equals faz basicamente a coisa certa), mas isso nem sempre é apropriado. Eu também gostaria de substituir a comparação de quaisquer objetos IEnumerable (mas não seqüências de caracteres!) Para que seu conteúdo seja comparado em vez de suas propriedades.

Isso provou ser mais difícil do que eu esperava. Qualquer sugestão será muito apreciada. Aceito a resposta mais útil ou fornece um link para as informações mais úteis.

Obrigado.

questionAnswers(5)

yourAnswerToTheQuestion