I have a bit of C# code which I use for performing a Deep Copy of an object:
public static T Copy(T objectToCopy) { T result = defaul