War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

XmlAttributes-Klasse

Stellt eine Auflistung von Attributobjekten dar, die steuern, wie der XmlSerializer Objekte serialisiert und deserialisiert.

System.Object
  System.Xml.Serialization.XmlAttributes

Namespace:  System.Xml.Serialization
Assembly:  System.Xml (in System.Xml.dll)

public class XmlAttributes

Der XmlAttributes-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlAttributes()Initialisiert eine neue Instanz der XmlAttributes-Klasse.
Öffentliche MethodeXmlAttributes(ICustomAttributeProvider)Infrastruktur. Initialisiert eine neue Instanz der XmlAttributes-Klasse und passt die Serialisierung und Deserialisierung durch den XmlSerializer an.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt in .NET für Windows Store-AppsXmlAnyAttributeRuft das zu überschreibende XmlAnyAttributeAttribute ab oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlAnyElementsRuft die Auflistung der zu überschreibenden XmlAnyElementAttribute-Objekte ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlArrayRuft ein Objekt ab, das angibt, wie XmlSerializer ein öffentliches Feld oder eine Lese-/Schreibeigenschaft serialisiert, die ein Array zurückgibt, oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlArrayItemsRuft eine Auflistung von Objekten ab, die die von XmlSerializer verwendete Serialisierung von Elementen angeben, die in ein von öffentlichen Feldern oder Lese-/Schreibeigenschaften zurückgegebenes Array eingefügt wurden, oder legt diese fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlAttributeRuft ein Objekt ab, das angibt, wie XmlSerializer ein öffentliches Feld oder eine öffentliche Lese-/Schreibeigenschaft als XML-Attribut serialisiert, oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlChoiceIdentifierRuft ein Objekt ab, mit dem Sie eine Reihe von Auswahlmöglichkeiten unterscheiden können, oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlDefaultValueRuft den Standardwert eines XML-Elements oder -Attributs ab oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlElementsRuft eine Auflistung von Objekten ab, die angeben, wie öffentliche Felder oder Lese-/Schreibeigenschaften von XmlSerializer als XML-Elemente serialisiert werden, oder legt diese fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlEnumRuft ein Objekt ab, das angibt, wie XmlSerializer einen Enumerationsmember serialisiert, oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlIgnoreRuft einen Wert ab, der angibt, ob XmlSerializer ein öffentliches Feld oder eine öffentliche Lese-/Schreibeigenschaft serialisiert, oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlnsRuft einen Wert ab, der angibt, ob alle Namespacedeklarationen beibehalten werden sollen, wenn ein Objekt überschrieben wird, das einen Member enthält, der ein XmlSerializerNamespaces-Objekt zurückgibt, oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlRootRuft ein Objekt ab, das angibt, wie XmlSerializer eine Klasse als XML-Stammelement serialisiert, oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlTextRuft ein Objekt ab, mit dem XmlSerializer angewiesen wird, ein öffentliches Feld oder eine öffentliche Lese-/Schreibeigenschaft als XML-Text zu serialisieren, oder legt dieses fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlTypeRuft ein Objekt ab, das angibt, wie XmlSerializer eine Klasse serialisiert, der das XmlTypeAttribute zugewiesen wurde, oder legt dieses fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

XmlAttributes wird als Teil eines Prozesses erstellt, der die Standardserialisierung überschreibt, die der XmlSerializer für Klasseninstanzen verwendet. Angenommen, Sie möchten ein Objekt serialisieren, das aus einer DLL erstellt wird, auf deren Quelle nicht zugegriffen werden kann. In diesem Fall können Sie XmlAttributeOverrides verwenden und so die Serialisierung des Objekts ändern oder erweitern.

Die Member der XmlAttributes-Klasse entsprechen direkt einer Familie von Attributklassen, die die Serialisierung steuern. Die XmlText-Eigenschaft muss z. B. auf ein XmlTextAttribute festgelegt werden. Hierdurch kann die Serialisierung eines Felds oder einer Eigenschaft überschrieben werden, indem XmlSerializer angewiesen wird, den Eigenschaftswert als XML-Text zu serialisieren. Eine vollständige Liste von Attributen zur Steuerung der Serialisierung finden Sie unter XmlSerializer.

Weitere Einzelheiten über die Verwendung von XmlAttributeOverrides in Verbindung mit der XmlAttributes-Klasse finden Sie unter Vorgehensweise: Angeben eines alternativen Elementnamens für einen XML-Stream.

Im folgenden Beispiel wird eine Instanz der Klasse Orchestra serialisiert, die ein einzelnes Feld mit der Bezeichnung Instruments enthält. Dieses Feld gibt ein Array von Instrument-Objekten zurück. Eine zweite Klasse Brass erbt von der Instrument-Klasse. Im Beispiel wird ein XmlAttributes-Objekt erstellt, um das Instrument-Feld zu überschreiben (das Feld kann so Brass-Objekte aufnehmen), und das XmlAttributes-Objekt einer Instanz der XmlAttributeOverrides-Klasse hinzugefügt.


using System;
using System.IO;
using System.Xml.Serialization;

public class Orchestra
{
   public Instrument[] Instruments;
}   

public class Instrument
{
   public string Name;
}

public class Brass:Instrument
{
   public bool IsValved;
}

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

    public void SerializeObject(string filename)
    {
      /* Each overridden field, property, or type requires 
      an XmlAttributes object. */
      XmlAttributes attrs = new XmlAttributes();

      /* Create an XmlElementAttribute to override the 
      field that returns Instrument objects. The overridden field
      returns Brass objects instead. */
      XmlElementAttribute attr = new XmlElementAttribute();
      attr.ElementName = "Brass";
      attr.Type = typeof(Brass);

      // Add the element to the collection of elements.
      attrs.XmlElements.Add(attr);

      // Create the XmlAttributeOverrides object.
      XmlAttributeOverrides attrOverrides = new XmlAttributeOverrides();

      /* Add the type of the class that contains the overridden 
      member and the XmlAttributes to override it with to the 
      XmlAttributeOverrides object. */
      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

      // Create the XmlSerializer using the XmlAttributeOverrides.
      XmlSerializer s = 
      new XmlSerializer(typeof(Orchestra), attrOverrides);

      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);

      // Create the object that will be serialized.
      Orchestra band = new Orchestra();

      // Create an object of the derived type.
      Brass i = new Brass();
      i.Name = "Trumpet";
      i.IsValved = true;
      Instrument[] myInstruments = {i};
      band.Instruments = myInstruments;

      // Serialize the object.
      s.Serialize(writer,band);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      XmlAttributeOverrides attrOverrides = 
         new XmlAttributeOverrides();
      XmlAttributes attrs = new XmlAttributes();

      // Create an XmlElementAttribute to override the Instrument.
      XmlElementAttribute attr = new XmlElementAttribute();
      attr.ElementName = "Brass";
      attr.Type = typeof(Brass);

      // Add the element to the collection of elements.
      attrs.XmlElements.Add(attr);

      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

      // Create the XmlSerializer using the XmlAttributeOverrides.
      XmlSerializer s = 
      new XmlSerializer(typeof(Orchestra), attrOverrides);

      FileStream fs = new FileStream(filename, FileMode.Open);
      Orchestra band = (Orchestra) s.Deserialize(fs);
      Console.WriteLine("Brass:");

      /* The difference between deserializing the overridden 
      XML document and serializing it is this: To read the derived 
      object values, you must declare an object of the derived type 
      (Brass), and cast the Instrument instance to it. */
      Brass b;
      foreach(Instrument i in band.Instruments) 
      {
         b = (Brass)i;
         Console.WriteLine(
         b.Name + "\n" + 
         b.IsValved);
      }
   }
}



.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft