2012-01-15 5 views
6

, например, что-то вроде:Как сделать класс десериализации под другим именем

<apple /> 

будет сериализовать только штрафом в классе под названием «яблоко». однако, если я хочу назвать этот класс «Дракон», он не будет сериализоваться (что имеет смысл). Я хочу знать, как разметить «Дракон» так, что когда XmlSerializer видит это, он знает, что «Дракон» такой же, как

ответ

8

Предполагая, что Dragon определяет по крайней мере надмножеством свойств и полей, которые apple делает то ответ competent_tech является целесообразным, хотя я думаю, что ваш вопрос на самом деле просят о:

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

Если Dragon является не совместимый с apple, тогда вам может быть лучше выполнять явное преобразование между типами. Предполагая, что ваше приложение знает определение как apple, так и Dragon, это можно сделать, десериализируя поток apple на объект apple, сопоставляя свойства с новым объектом Dragon, а затем сериализуя объект Dragon.

+2

Упреки для всех! – Jeremy