utiliser l’atsortingbut XmlArrayItem sans XmlArray sur la classe Serializable C #

Je veux du XML dans le format suivant:

 ... ... ...  

J’essaie de créer une classe Configuration qui possède l’atsortingbut [Serializable] . Pour sérialiser les noeuds d’informations d’identification, j’ai les éléments suivants:

 [XmlArray("configuration")] [XmlArrayItem("credentials", typeof(CredentialsSection))] public List Credentials { get; set; } 

Cependant, lorsque je le sérialise en XML, le format XML est le suivant:

  ...  ... ...   

Si je supprime la ligne [XmlArray("configuration")] , j’obtiens les éléments suivants:

  ...  ... ...   

Comment puis-je le sérialiser comme je le souhaite, avec plusieurs nœuds dans le nœud racine unique ? Je voulais faire cela sans avoir à implémenter IXmlSerializable et faire de la sérialisation personnalisée. Voici comment ma classe est décrite:

 [Serializable] [XmlRoot("configuration")] public class Configuration : IEquatable 

Ce qui suit devrait sérialiser correctement comme vous le souhaitez. L’indice étant [XmlElement("credentials")] dans la liste. Je l’ai fait en prenant votre XML, en générant un schéma (xsd) dans Visual Studio. Ensuite, exécutez xsd.exe sur le schéma pour générer une classe. (Et quelques petites retouches)

 public class CredentialsSection { public ssortingng Username { get; set; } public ssortingng Password { get; set; } } [XmlRoot(Namespace = "", IsNullable = false)] public class configuration { ///  public ssortingng logging { get; set; } ///  [XmlElement("credentials")] public List credentials { get; set; } public ssortingng Serialize() { var credentialsSection = new CredentialsSection {Username = "a", Password = "b"}; this.credentials = new List {credentialsSection, credentialsSection}; this.logging = "log this"; XmlSerializer s = new XmlSerializer(this.GetType()); SsortingngBuilder sb = new SsortingngBuilder(); TextWriter w = new SsortingngWriter(sb); s.Serialize(w, this); w.Flush(); return sb.ToSsortingng(); } } 

donne la sortie suivante

   log this  a b   a b