Answer: There are better cloning methods.
Reflection or expression Trees are much faster than serialization (reflection is 5 times faster , expression trees are 20 times faster ).

If you use this related cloning function as an extension method, each of your cloning code is compressed to
#region ICloneable public object Clone() { return this.DeepCopyByExpressionTree(); } #endregion
To use the extension method, just have the DeepCopyByExptressionTrees.cs file anywhere in your solution.
source share