When working on some sort of data-driven project, I frequently have the need to allow deep-copying of data objects. There are several patterns that accomplish this, but I've settled on one in particular.
Most .NET developers are probably familiar with the
interface. While this is a good starting ...