Создать экземпляр производного класса из экземпляра базового
От: Ules  
Дата: 18.04.13 07:13
Оценка:
Как это сделать с наименьшим геммороем? Не хочется вручную копировать все поля. Ничего не придумал лучше как использовать 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);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.