Как это сделать с наименьшим геммороем? Не хочется вручную копировать все поля. Ничего не придумал лучше как использовать xml сериализацию с хаком. Есть ли более оптимальный/правильный путь?
var writer = new StringWriter();
var serializer = new XmlSerializer(typeof(MyBaseClass));
serializer.Serialize(writer, prototype);
var v = writer.ToString();
v = v.Replace("MyBaseClass", "MyDerivedClass");
var dserializer = new XmlSerializer(typeof(MyDerivedClass));
var reader = new StringReader(v);
var derivedObject = dserializer.Deserialize(reader);