2016-09-22 1 views
0

Je sérialisation une structure qui se traduit par cette sortie:.net sérialisation XML de manière compacte, lisible par l'homme

<NachrichtenKonfiguration> 
    <Elemente> 
    <Element> 
     <Typ>Bool</Typ> 
     <Bezeichnung>Gut</Bezeichnung> 
    </Element> 
    <Element> 
     <Typ>Int</Typ> 
     <Bezeichnung>Dauer</Bezeichnung> 
    </Element> 
    </Elemente> 
    <Name>Teiledaten</Name> 
</NachrichtenKonfiguration> 

Et je voudrais que ce soit un peu comme ceci:

<NachrichtenKonfiguration Name="Teiledaten"> 
    <Elemente> 
    <Element Typ="Bool" Bezeichnung="Gut"/> 
    <Element Typ="Int" Bezeichnung="Schleifdauer"/> 
    </Elemente> 
</NachrichtenKonfiguration> 

Est-il possible de faire XmlSerialzer/XmlWriter (utiliser des attributs au lieu d'éléments imbriqués)?

Salutations,

Tim

+4

Oui, c'est possible. Avez-vous essayé quelque chose? –

+3

Copie possible de [Comment sérialiser un XmlDocument dans un fichier XML bien lisible et lisible par l'homme?] (Http://stackoverflow.com/questions/17101817/how-to-serialize-an-xmldocument-to-a-well- formaté-humain-lisible-xml) –

+2

@JayGould Il ne cherche pas d'identité. Il recherche un code qui ajoute des attributs pour un élément plutôt que des éléments imbriqués pour un élément. –

Répondre

2

Ok je l'ai eu, il vous suffit d'ajouter le [XmlAttribute] -tag sur la déclaration correspondante.

Voici comment. Si vous avez une classe appelée « personne » et vous avez deux attributs, écrivez le code comme ceci:

[Serializable] 
public class Person 
{ 
    [XmlAttribute] 
    public int Age; 
    [XmlAttribute] 
    public string Name; 

    public Person() 
    { 

    } 
} 

Lors de la sérialisation (avec les paramètres XmlWriter fixés aux lignes tiret) au-dessus des résultats de structure dans ce code xml:

<Person Age="21" Name="Stacky" /> 
+0

Pouvez-vous montrer le code s'il vous plaît? –

+0

Oui, bien sûr. Ajouté – Ravior