Considerate due istanze di una classe, è una pratica buona e affidabile confrontarle prima serializzandole prima e confrontando quindi matrici di byte (o possibilmente hash di matrici). Questi oggetti potrebbero avere proprietà gerarchiche complesse, ma la serializzazione dovrebbe essere profonda quanto necessario.È affidabile confrontare due istanze di una classe confrontando i loro array di byte serializzati?
Per confronto intendo il processo di fare in modo che tutte le propertis dei tipi primitivi abbiano valori uguali, le proprietà dei tipi complessi abbiano le stesse proprietà dei tipi primitivi, ecc. Come per le proprietà di raccolta, devono essere uguali tra loro: uguali elementi, stesse posizioni:
{'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"}}
ma
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
==
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
E per la serializzazione intendo standard di formattatore binario NET.
Grazie.
Per quale scopo vorresti fare questo tipo di confronto? Questo potrebbe aiutare a fornire una risposta più dettagliata. – BlueMonkMN
Attualmente conosco due modi di confrontare gli oggetti (quelli che non implementano IComparable o IEquattable), con PropertyInfo e PropertyDescriptor. Questo potrebbe essere semplicemente un terzo strumento nel mio toolkit. Ma mi interessa l'applicabilità generale e l'affidabilità di questo metodo. Può dare risultati sbagliati? – Valentin