I think there's good no answer but before I throw in the towel on doing this gracefully I'll ask here:
I have a parent class which holds a bunch of data. These are used only to instantiate a descendant which takes the parent, modifies it and produces the final result.
I see how to use MemberwiseCopy to make another instance of the parent but I need a child, not another parent.
I see two answers, neither of which I like:
1) Forget inheritance, make a copy of the parent in a field in the working copy.
2) Copy each field to the child.