Comment puis-je changer le nom de l'élément racine tout en gardant le contenu à l'aide de XmlSerializer?
J'ai un document XML:
<data>
<elmt1>Element 1</elmt1>
<elmnt2>Element 2</elmnt2>
<elmnt3>Element 3</elmnt3>
</data>
J'ai besoin de désérialiser un objet qui sérialise un autre nom de la racine de tout le reste en restant le même.
Par exemple:
<dataNew>
<elmt1>Element 1</elmt1>
<elmnt2>Element 2</elmnt2>
<elmnt3>Element 3</elmnt3>
</dataNew>
Lors de la sérialisation, on peut toujours appliquer XmlRootAttribute
pour sérialiser un autre nom de la racine mais je ne suis pas sûr de la façon de désérialiser un autre XmlRootAttribute
. Il met en situation d'échec error in document (1,2)
pointant vers la racine de l'attribut.
Comment puis-je y parvenir?
OriginalL'auteur G33kKahuna | 2009-09-21
Vous devez vous connecter pour publier un commentaire.
Attribut xmlrootattribute était censé travailler
EDIT: Terminé le XML
OriginalL'auteur mkato
Si c'est seulement le nom de la racine que vous voulez changer, vous pouvez spécifier l'attribut racine lors de la déclaration de la XmlSerializer.
OriginalL'auteur Aaron
Avez-vous essayez d'utiliser la XmlAttributeOverrides classe?
OriginalL'auteur Hasani Blackwell
un échantillon de l'aide XmlAttributeOverrides. Si vous votez jusqu'en donner un à hjb417 ainsi
Mathew, toutes les idées ...merci
Dans ce cas, vous devrez remplacer l'attribut xmlrootattribute("dataNew") avec des "données" et l'typeof(données) serait typeof(dataNew)
OriginalL'auteur Matthew Whited
Vous pourriez avoir à mettre en œuvre ISerializable et le changement de l'élément racine dans GetObjectData().
OriginalL'auteur jrummell
Vous pouvez utiliser ExtendedXmlSerializer. Cette sérialiseur soutien de changement de nom de l'élément racine et le nom de la propriété.
Si vous avez de la classe comme ceci:
Vous pouvez sérialiser:
Votre xml va ressembler:
ExtendedXmlSerializer a beaucoup d'autres fonctions utiles:
ExtendedXmlSerializer prend en charge .net 4.5 et .net de Base. Vous pouvez l'intégrer avec WebApi et AspCore.
OriginalL'auteur Wojtpl2