using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; public static class Extensions { public static T DeepClone(this T obj) { using (MemoryStream stream = new MemoryStream()) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, obj); stream.Position = 0; return (T)formatter.Deserialize(stream); } } }