Riferimento a this risposta a una domanda.Are BinaryFormatter Serialize e Deserialize thread safe?
questo può essere riscritto come:
private static BinaryFormatter formatter = new BinaryFormatter();
public static T DeepClone<T>(this T a)
{
using(MemoryStream stream = new MemoryStream())
{
formatter.Serialize(stream, a);
stream.Position = 0;
return (T)formatter.Deserialize(stream);
}
}
evitando così la costruzione (e GC'ing) un nuovo BinaryFormatter per ogni chiamata?
Questo percorso di codice viene colpito molto frequentemente poiché coinvolge il nostro livello di memorizzazione nella cache e vorrei renderlo il più leggero possibile.
Grazie.
Un argomento classico per immutabile;) –