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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten die folgenden serialisieren richtig so, wie Sie wollen. Der Hinweis,
[XmlElement("credentials")]
auf der Liste. Ich Tat dies, indem Sie Ihr xml, Generierung eines Schemas (xsd) von Visual Studio. Dann läuft xsd.exe auf dem schema zum erzeugen einer Klasse. (Und einige kleine änderungen)geben Sie die folgende Ausgabe
InformationsquelleAutor der Antwort Mikael Svenson