Here is an example, this is what I have done, and no problems so far.
public class ModelBase { public T ShallowCopy<T>() where T : ModelBase { return (T)(MemberwiseClone()); } }
And call it that:
var cloned = User.ShallowCopy<User>();
Esteban
source share