Implementación de C # de la comparación de objetos profunda / recursiva en .net 3.5

Estoy buscando una implementación de código abierto específico (o código fuente disponible) de C # de comparación de objetos recursiva o profunda.

Actualmente tengo dos gráficos de objetos en vivo que comparo entre sí, y el resultado de la comparación es un conjunto de discrepancias en los gráficos. Los objetos son instancias de un conjunto de clases que se conocen en tiempo de ejecución (pero no necesariamente en tiempo de comstackción).

Existe un requisito específico para poder hacer un mapa de las discrepancias en los gráficos, volver a los objetos que contienen las discrepancias.

Encontré una implementación realmente agradable y gratuita en http://www.kellermansoftware.com llamada Compare .NET Objects que se puede encontrar aquí . Muy recomendable.


Parece haberse reubicado en github; la versión más reciente está disponible aquí