Verwenden des XmlArrayItem-Attributs ohne XmlArray in der serialisierbaren C # -Klasse

Möchte ich den XML-Code im folgenden format:

<configuration><!-- Only one configuration node -->
  <logging>...</logging><!-- Only one logging node -->
  <credentials>...</credentials><!-- One or more credentials nodes -->
  <credentials>...</credentials>
</configuration>

Ich versuche, eine Klasse zu erstellen Configuration hat die [Serializable] Attribut. Serialisieren Sie die Anmeldeinformationen Knoten, ich habe Folgendes:

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

Jedoch, wenn ich dies serialisieren in XML, die XML-Daten im folgenden format:

<configuration>
  <logging>...</logging>
  <configuration><!-- Don't want credentials nodes nested in a second
                      configuration node -->
    <credentials>...</credentials>
    <credentials>...</credentials>
  </configuration>
</configuration>

Wenn ich entfernen Sie die [XmlArray("configuration")] Zeile, bekomme ich die folgende:

<configuration>
  <logging>...</logging>
  <Credentials><!-- Don't want credentials nodes nested in Credentials node -->
    <credentials>...</credentials>
    <credentials>...</credentials>
  </Credentials>
</configuration>

Wie kann ich dies serialisieren, wie ich will, mit mehreren <credentials> Knoten, die innerhalb der einzelnen root-Knoten <configuration>? Ich wollte dies tun, ohne zu realisieren IXmlSerializable und führen Sie benutzerdefinierte Serialisierung. Dies ist, wie meine Klasse wird beschrieben:

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

InformationsquelleAutor der Frage Sarah Vessels | 2010-07-21

Schreibe einen Kommentar