A simple working deep copy in dotnet
Dotnet lacks a good canonical deep copy method or lib.
There are some solutions like
What you you find on Stack overflow
and simple libraries that I have not tested.
There is Automapper which does deep copying and a boatload more. My beef with Automapper is its singleton behaviour. Either I have misunderstood how it works or there is no way to use it throughout a 3 layer solution where there is no assembly that knows all other assemblies.