Ciao, inanzitutto ti ringrazio della risposta.
Riguardo al fatto di creare una classe con un costruttore che accetta un oggetto dello stesso tipo, ci ho pensato, ma molto spesso è una strada impraticabile, in quanto solitamente le classi che utilizzo hanno una quantità considerevole di proprietà. Ad esempio utilizzando database con oltre 50 colonne, tramite LINQ to SQL genero classi con 50 e passa proprietà, non è fattibile creare un costruttore e assegnare tutte le proprietà all'istanza, a meno che si utilizzi la reflection, che è a mio avviso un'operazione delicata. La mia richiesta a questo punto è: a prescindere dalla complessità dell'oggetto, qual'è il migliore modo per fare una copia di un oggetto senza passare dall'assegnazione manuale parametro per parametro?