quarta-feira, 16 de novembro de 2011

Deep compare de dois objectos em C#

Estava a implementar um teste e gostaria de comparar duas propriedades que eram classes complexas, no entanto é bastante complicado comparar todos os tipos de classes, sobretudo se forem colecções (IList, array, etc.). Após alguma pesquisa encontrei este projecto no codeplex que suporta a maioria dos tipos que uso no projecto:

http://comparenetobjects.codeplex.com/releases/view/47978

Este utilitário está todo implementado numa classe e usa reflection para correr as propriedades todas e é bastante fácil de usar com as opções default:

CompareObjects comparer = new CompareObjects();
return comparer.Compare(obj1, obj2);

Sem comentários:

Enviar um comentário