public void CanHandleRecursion() { // only happens if the values are the same var root = new RecursiveRoot(); root.Sub = new RecursiveSub { Root = root }; var copy = root.Copy(); }