(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

Vorgehensweise: Angeben eines alternativen Elementnamens für einen XML-Stream

Codebeispiel

Mit XmlSerializer können Sie mehr als einen XML-Stream mit der gleichen Gruppe von Klassen generieren. Dies ist beispielsweise dann sinnvoll, wenn zwei verschiedene XML-Webdienste die gleichen grundlegenden Informationen benötigen, die sich nur in wenigen Details unterscheiden. Stellen Sie sich beispielsweise vor, zwei XML-Webdienste, die Buchbestellungen verarbeiten, erfordern die Angabe von ISBN-Nummern. Ein Dienst verwendet das Tag <ISBN>, während der Zweite das Tag <BookID> verwendet. Sie verfügen über eine Klasse mit dem Namen von Book, die ein Feld namens ISBN enthält. In der Standardeinstellung wird beim Serialisieren einer Instanz der Book-Klasse der Membername (ISBN) als Name des XML-Elements verwendet. Für den ersten XML-Webdienst entspricht dies dem erwarteten Verhalten. Wenn der XML-Stream jedoch an den zweiten XML-Webdienst gesendet werden soll, muss die Serialisierung überschrieben werden, damit der Elementname des Tags BookID lautet.

So erstellen Sie einen XML-Stream mit einem alternativen Elementnamen

  1. Erstellen Sie eine Instanz der XmlElementAttribute-Klasse.

  2. Legen Sie die ElementName-Eigenschaft des XmlElementAttribute-Objekts auf "BookID" fest.

  3. Erstellen Sie eine Instanz der XmlAttributes-Klasse.

  4. Fügen Sie das XmlElementAttribute-Objekt der Sammlung hinzu, auf die über die XmlElements-Eigenschaft von XmlAttributes zugegriffen wird.

  5. Erstellen Sie eine Instanz der XmlAttributeOverrides-Klasse.

  6. Fügen Sie das XmlAttributes-Objekt dem XmlAttributeOverrides-Objekt hinzu, und geben Sie dabei sowohl den Typ des zu überschreibenden Objekts als auch den Namen des Members an, das überschrieben wird.

  7. Erstellen Sie eine Instanz der XmlSerializer-Klasse mit XmlAttributeOverrides.

  8. Erstellen Sie eine Instanz der Book-Klasse, und serialisieren oder deserialisieren Sie diese Instanz.

public class SerializeOverride()
{
    // Creates an XmlElementAttribute with the alternate name.
    XmlElementAttribute myElementAttribute = new XmlElementAttribute();
    myElementAttribute.ElementName = "BookID";
    XmlAttributes myAttributes = new XmlAttributes();
    myAttributes.XmlElements.Add(myElementAttribute);
    XmlAttributeOverrides myOverrides = new XmlAttributeOverrides();
    myOverrides.Add(typeof(Book), "ISBN", myAttributes);
    XmlSerializer mySerializer = 
    new XmlSerializer(typeof(Book), myOverrides)
    Book b = new Book();
    b.ISBN = "123456789"
    // Creates a StreamWriter to write the XML stream to.
    StreamWriter writer = new StreamWriter("Book.xml");
    mySerializer.Serialize(writer, b);
}

Der XML-Stream könnte wie folgt aussehen.

<Book>
    <BookID>123456789</BookID>
</Book>

Community-Beiträge

Anzeigen:
© 2014 Microsoft