Dadas dos instancias de una clase, ¿es una práctica buena y confiable compararlas serializándolas primero y luego comparando matrices de bytes (o posiblemente hash de matrices)? Estos objetos pueden tener propiedades jerárquicas complejas, pero la serialización debe ser tan profunda como se requiera.¿Es confiable comparar dos instancias de una clase comparando sus matrices de bytes serializados?
En comparación me refiero al proceso de asegurar que todas las propiedades de los tipos primitivos tengan valores iguales, las propiedades de los tipos complejos tengan propiedades iguales de tipos primitivos, etc. En cuanto a las propiedades de recolección, deben ser iguales: iguales elementos, mismas posiciones:
{'a','b','c'} != {'a','c','b'}
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
!=
{new Customer{Id=3, Name="def"}, new Customer {Id=2, Name="abc"}}
pero
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
==
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
y mediante la serialización me refiero formateador binario estándar de .NET.
Gracias.
¿Con qué propósito le gustaría hacer este tipo de comparación? Eso podría ayudar a proporcionar una respuesta más detallada. – BlueMonkMN
Actualmente conozco dos formas de comparar objetos (aquellos que no implementan IComparable o IEquattable), con PropertyInfo y PropertyDescriptor. Esto podría ser simplemente una tercera herramienta en mi kit de herramientas. Pero estoy interesado en la aplicabilidad general y la confiabilidad de este método. ¿Puede dar resultados incorrectos? – Valentin