What would be the best way to write a generic copy constructor function for my c# classes? They all inherit from an abstract base class so I could use reflection to map the prop
You can create a shallow copy efficiently with reflection by pre-compiling it, for example with Expression. For example, like so.
Expression
For deep copies, serialization is the most reliable approach.