2012-01-15 9 views
6

na przykład coś takiego:Jak zrobić deserializowania klasy jako inną nazwą

<apple /> 

serializacji będzie dobrze do klasy o nazwie „jabłko”. jednak, jeśli chcę nazwać tę klasę "smokiem", to nie będzie serializować (co ma sens). Chcę wiedzieć, jak oznaczyć "Smoka" tak, że gdy XmlSerializer go zobaczy, wie, że "Smok" jest taki sam jak

Odpowiedz

8

Zakładając Dragon wyznacza co najmniej rozszerzeniem właściwości i pól apple robi wtedy odpowiedź competent_tech jest odpowiednie choć myślę, że pytanie jest faktycznie pytając o:

[System.Xml.Serialization.XmlType("apple")] 
public class Dragon 

Jeśli Dragon jest nie Kompatybilny z apple, może być lepszym rozwiązaniem przeprowadzenie jawnej konwersji między typami. Zakładając, że aplikacja zna definicję zarówno apple, jak i Dragon, można to osiągnąć poprzez deserializację strumienia apple do obiektu apple, odwzorowanie właściwości na nowy obiekt Dragon, a następnie serializację obiektu Dragon.

+2

Awans dla wszystkich! – Jeremy

Powiązane problemy