There are several ways to clone custom object in .NET.
- Using reflection to get information about each field and properties in the custom class, create a new instance and assign the proper value.
- Manually implementing the clone method and assign each field and method and then return a new object
- Using serialization and deserialization.
I have tried the third method, that can be found here, it seems to be working fine for the time being, more test need to be done for performance overhead.