Je veux XML dans le format suivant:utilisant l'attribut XmlArrayItem sans XmlArray sur Serializable classe C#
<configuration><!-- Only one configuration node -->
<logging>...</logging><!-- Only one logging node -->
<credentials>...</credentials><!-- One or more credentials nodes -->
<credentials>...</credentials>
</configuration>
Je suis en train de créer une classe Configuration
qui a l'attribut [Serializable]
. Pour sérialiser les informations d'identification des noeuds, je donne les résultats suivants:
[XmlArray("configuration")]
[XmlArrayItem("credentials", typeof(CredentialsSection))]
public List<CredentialsSection> Credentials { get; set; }
Cependant, quand je sérialisez à XML, le XML est dans le format suivant:
<configuration>
<logging>...</logging>
<configuration><!-- Don't want credentials nodes nested in a second
configuration node -->
<credentials>...</credentials>
<credentials>...</credentials>
</configuration>
</configuration>
Si je supprime la ligne [XmlArray("configuration")]
, je obtenir ce qui suit:
<configuration>
<logging>...</logging>
<Credentials><!-- Don't want credentials nodes nested in Credentials node -->
<credentials>...</credentials>
<credentials>...</credentials>
</Credentials>
</configuration>
Comment puis-je sérialiser la façon dont je veux, avec plusieurs <credentials>
nœuds dans le nœud racine unique <configuration>
? Je voulais faire cela sans avoir à mettre en œuvre IXmlSerializable
et faire une sérialisation personnalisée. Voici comment ma classe est décrite:
[Serializable]
[XmlRoot("configuration")]
public class Configuration : IEquatable<Configuration>
Oui, cela a fonctionné! J'étais tellement sur "c'est une liste", je dois utiliser l'attribut 'XmlArrayItem' quelque part" que je n'ai même pas pensé à en faire un 'XmlElement' normal. –
bonne réponse, j'ai eu le même problème - je voulais supprimer: DATAITEMS> résolu avec: [XmlElement ("DataItem")] Liste publique DataItem {get; ensemble; } –
nologo
Merci Mikael. Cela m'a aidé avec mon problème aujourd'hui. +1 – John