2011-06-16 6 views
1

Existe-t-il un moyen de rendre XmlSerializer pour sérialiser les propriétés de l'objet en tant qu'attributs au lieu de en tant qu'éléments?.NET Format XML XmlSerializer

comme: Person.Phone = "1 800 APPELEZ-MOI"

deviendrait:

[Personne Téléphone = "1 800 APPELEZ-MOI" /]

au lieu de:

[personne] [téléphone] 1 800 APPELEZ-MOI [/ téléphone] [/ personne]

+0

En mettant en œuvre IXmlSerializable vous pouvez contrôler exactement comment l'objet i sérialisé. – Magnus

+0

@Magnus c'est généralement une mauvaise façon de le faire; très difficile à faire robuste ... –

Répondre

2

... Bien sûr

public class Person 
{ 
    [XmlAttribute] 
    public string Phone {get;set;} 
} 

Vous pouvez également modifier le nom/l'espace de noms, etc. en examinant les paramètres d'attribut.

+0

Merci. Je crois que c'était la première réponse conseillant d'utiliser XmlAttribute. Pas sûr, la plupart des réponses montrent "il y a 2 heures" mais l'onglet "le plus ancien" classe celui-ci en haut. – vlscanner

2

Vous pouvez le faire de cette façon

[Serializable] 
public class Person 
{   
     [XmlAttribute()] 
     public string Phone { get; set;} 

     Or 

     [XmlAttribute("Phone")] 
     public string Phone123 { get;set;} 
} 
+2

XmlSerializer ne vérifie pas (et ne nécessite pas) '[Serializable]' –

Questions connexes