¿Cómo "clonar" un objeto en un objeto de subclase?

Tengo una claseA y una claseB que hereda la claseA Y lo amplía con algunos campos más.

Tener un objetoa de tipoA, como puedo crear un objetob de tipoB que contiene todos los datos que objetoa contenido?

Yo he tratadoa.MemberwiseClone() Pero eso solo me da otro tipo.A objeto. Y no puedo lanzarA dentroB Ya que la relación de herencia solo permite el lanzamiento opuesto.

¿Cuál es la forma correcta de hacer esto?