public static object CreateClone(object obj)
{
object copy;
Stream stream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, obj);
stream.Seek(0, 0);
copy = formatter.Deserialize(stream);
stream.Close();
return copy;
}
Usage:
// Employee should be marked [Serializable]
Employee employee = new Employee();
employee.Name = "Test Name";
// Create a duplicate of employee - not just reference usage
Employee employee2 = CreateClone(employee);