Create a Deep Copy in C#
It is completely impossible to deep-copy an arbitrary object. For example, how would you handle a Control or a FileStream or an HttpWebResponse? Your code cannot know how the object works and what its fields are supposed to contain. Do not do this. It’s a recipe for disaster.