Auf Englisch lesen

Freigeben über


XmlSerializerNamespaces Klasse

Definition

Enthält die XML-Namespaces und Präfixe, die von XmlSerializer zum Generieren vollständiger Namen in einer XML-Dokumentinstanz verwendet werden.

C#
public class XmlSerializerNamespaces
Vererbung
XmlSerializerNamespaces

Beispiele

Im folgenden Beispiel wird ein XmlSerializerNamespaces -Objekt erstellt und zwei Präfix- und Namespacepaare hinzugefügt. Das Beispiel übergibt dann die XmlSerializerNamespaces an die Serialize -Methode, die ein Books Objekt in ein XML-Dokument serialisiert. Mithilfe des XmlSerializerNamespaces -Objekts qualifiziert die Serialize -Methode jedes XML-Element und -Attribut mit einem der beiden Namespaces.

C#
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("XmlNamespaces.xml");
   }

   public void SerializeObject(string filename)
   {
      XmlSerializer s = new XmlSerializer(typeof(Books));
      // Writing a file requires a TextWriter.
      TextWriter t = new StreamWriter(filename);

      /* Create an XmlSerializerNamespaces object and add two
      prefix-namespace pairs. */
      XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
      ns.Add("books", "http://www.cpandl.com");
      ns.Add("money", "http://www.cohowinery.com");

      // Create a Book instance.
      Book b = new Book();
      b.TITLE = "A Book Title";
      Price p = new Price();
      p.price = (decimal) 9.95;
      p.currency = "US Dollar";
      b.PRICE = p;
      Books bks = new Books();
      bks.Book = b;
      s.Serialize(t,bks,ns);
      t.Close();
   }
}

public class Books
{
   [XmlElement(Namespace = "http://www.cohowinery.com")]
   public Book Book;
}

[XmlType(Namespace ="http://www.cpandl.com")]
public class Book
{
   [XmlElement(Namespace = "http://www.cpandl.com")]
   public string TITLE;
   [XmlElement(Namespace ="http://www.cohowinery.com")]
   public Price PRICE;
}

public class Price
{
   [XmlAttribute(Namespace = "http://www.cpandl.com")]
   public string currency;
   [XmlElement(Namespace = "http://www.cohowinery.com")]
   public decimal price;
}

Hinweise

Enthält XmlSerializerNamespaces eine Auflistung von XML-Namespaces mit jeweils einem zugeordneten Präfix. Verwendet XmlSerializer eine Instanz der XmlSerializerNamespaces -Klasse, um qualifizierte Namen in einem XML-Dokument zu erstellen.

Xml-Namespaces, die in enthalten XmlSerializerNamespaces sind, müssen der W3C-Spezifikation namens Namespaces in XML entsprechen.

XML-Namespaces bieten eine Möglichkeit, die Namen von XML-Elementen und -Attributen in XML-Dokumenten zu qualifizieren. Ein qualifizierter Name besteht aus einem Präfix und einem lokalen Namen, die durch einen Doppelpunkt voneinander getrennt sind. Das Präfix wird nur als Platzhalter verwendet und ist einem URI zugeordnet, der den Namespace angibt. Die Kombination aus dem universell verwalteten URI-Namespace und dem lokalen Namen erzeugt einen Namen, der garantiert universell eindeutig ist.

So erstellen Sie qualifizierte Namen in einem XML-Dokument:

  1. Erstellen Sie eine XmlSerializerNamespaces Instanz.

  2. Add jedes Präfix- und Namespacepaar, das Sie für die Instanz verwenden möchten.

  3. Wenden Sie das attribut appropriate.NET auf jede Eigenschaft oder Klasse an, die in XmlSerializer ein XML-Dokument serialisiert wird. Die verfügbaren Attribute sind:

  1. Legen Sie die Namespace Eigenschaft jedes Attributs auf einen der Namespacewerte aus dem XmlSerializerNamespaces -Objekt fest.

  2. Übergeben Sie XmlSerializerNamespaces an die Serialize-Methode von XmlSerializer.

Hinweis

Die Erstellung eines leeren Namespace- und Präfixpaars wird nicht unterstützt. Das heißt, Sie können kein Paar mit dem folgenden Code erstellen:

C#
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();   
ns.Add("", "");  

Konstruktoren

XmlSerializerNamespaces()

Initialisiert eine neue Instanz der XmlSerializerNamespaces-Klasse.

XmlSerializerNamespaces(XmlQualifiedName[])

Initialisiert eine neue Instanz der XmlSerializerNamespaces-Klasse.

XmlSerializerNamespaces(XmlSerializerNamespaces)

Initialisiert eine neue Instanz der XmlSerializerNamespaces-Klasse unter Verwendung der angegebenen Instanz von XmlSerializerNamespaces mit einer Auflistung von Paaren aus Präfix und Namespace.

Eigenschaften

Count

Ruft die Anzahl der Paare aus Präfix und Namespace in der Auflistung ab.

Methoden

Add(String, String)

Fügt einem XmlSerializerNamespaces-Objekt ein Paar aus Präfix und Namespace hinzu.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToArray()

Ruft das Array von Paaren aus Präfix und Namespace von einem XmlSerializerNamespaces-Objekt ab.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Weitere Informationen