(0) exportieren 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

XmlElementAttribute-Klasse

Gibt an, dass ein öffentliches Feld oder eine öffentliche Eigenschaft beim Serialisieren bzw. Deserialisieren des Objekts, in dem diese enthalten sind, durch XmlSerializer ein XML-Element darstellt.

System.Object
  System.Attribute
    System.Xml.Serialization.XmlElementAttribute

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

[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue, AllowMultiple = true)]
public class XmlElementAttribute : Attribute

Der XmlElementAttribute-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-AppsXmlElementAttribute()Initialisiert eine neue Instanz der XmlElementAttribute-Klasse.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlElementAttribute(String)Initialisiert eine neue Instanz der XmlElementAttribute-Klasse und gibt den Namen des XML-Elements an.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlElementAttribute(Type)Initialisiert eine neues Instanz der XmlElementAttribute-Klasse und gibt einen Typ für den Member an, auf den das XmlElementAttribute angewendet wird. Dieser Typ wird vom XmlSerializer verwendet, wenn das Objekt serialisiert oder deserialisiert wird, in dem es enthalten ist.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsXmlElementAttribute(String, Type)Initialisiert eine neue Instanz von XmlElementAttribute, und gibt den Namen des XML-Elements und einen abgeleiteten Typ für den Member an, auf den das XmlElementAttribute angewendet wird. Dieser Membertyp wird verwendet, wenn der XmlSerializer das Objekt serialisiert, in dem es enthalten ist.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsDataTypeRuft den XSD (XML Schema Definition)-Datentyp des vom XmlSerializer generierten XML-Elements ab oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsElementNameRuft den Namen des generierten XML-Elements ab oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFormRuft einen Wert ab, der angibt, ob das Element qualifiziert ist.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsNullableRuft einen Wert ab, der angibt, ob XmlSerializer einen Member, der auf null festgelegt ist, als leeres Tag, dessen xsi:nil-Attribut auf true festgelegt ist, serialisieren muss, oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNamespaceRuft den Namespace ab, der dem XML-Element zugeordnet ist, das aus dem Serialisieren der Klasse resultiert, oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsOrderRuft die explizite Reihenfolge ab, in der die Elemente serialisiert oder deserialisiert werden, oder legt diese fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsTypeRuft den Objekttyp ab, mit dem das XML-Element dargestellt wird, oder legt diesen fest.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute 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-AppsGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute 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.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute 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

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

XmlElementAttribute gehört zu einer Familie von Attributen, die das Serialisieren bzw. Deserialisieren eines Objekts durch XmlSerializer steuern. Eine vollständige Liste ähnlicher Attribute finden Sie unter Attribute zur Steuerung der XML-Serialisierung.

Ein XML-Dokument enthält i. d. R. XML-Dokumente, die aus jeweils drei Teilen besteht: einem öffnenden Tag mit möglichen Attributen, einem schließenden Tag und den Daten zwischen den Tags. XML-Tags können geschachtelt werden. Das heißt, dass die Daten zwischen Tags ebenfalls XML-Elemente sein können. Diese Fähigkeit eines Elements, ein anderes einzuschließen, ermöglicht Datenhierarchien im Dokument. Ein XML-Element kann auch Attribute enthalten.

Weisen Sie XmlElementAttribute öffentlichen Feldern oder Lese-/Schreib-Eigenschaften zu, um die Merkmale der XML-Elemente, z. B. Elementname und Namespace, zu steuern.

Sie können XmlElementAttribute mehrmals auf ein Feld anwenden, das ein Array von Objekten zurückgibt. Das Zweck besteht darin, (über die Type-Eigenschaft) verschiedene Typen anzugeben, die in das Array eingefügt werden können. Das Array im folgenden C#-Code akzeptiert z. B. sowohl Zeichenfolgen als auch ganze Zahlen.

 public class Things{
    [XmlElement(Type = typeof(string)),
    XmlElement(Type = typeof(int))]
    public object[] StringsAndInts;
 }

Dies resultiert in einer XML-Darstellung ähnlich der Folgenden.

 <Things>
    <string>Hello</string>
    <int>999</int>
    <string>World</string>
 </Things>

Beim mehrfachen Anwenden von XmlElementAttribute ohne Angabe eines ElementName-Eigenschaftswerts werden die Elemente nach dem Typ des zulässigen Objekts benannt.

Wenn Sie XmlElementAttribute auf Felder oder Eigenschaften anwenden, die ein Array zurückgeben, werden die Elemente im Array als Folge von XML-Elementen codiert.

Wenn jedoch XmlElementAttribute nicht auf diese Felder oder Eigenschaften angewendet wird, werden die Elemente im Array als Folge von Elementen codiert und sind in einem Element geschachtelt, das nach dem Feld bzw. der Eigenschaft benannt ist. (Mit den Attributen XmlArrayAttribute und XmlArrayItemAttribute können Sie steuern, wie ein Array serialisiert wird.)

Sie können die Type-Eigenschaft auf die Angabe eines Typs festlegen, der vom Typ des ursprünglichen Felds bzw. der ursprünglichen Eigenschaft, d. h. des Felds bzw. der Eigenschaft, auf das bzw. die XmlElementAttribute angewendet wurde, abgeleitet ist.

Wenn ein Feld bzw. eine Eigenschaft ArrayList zurückgibt, weisen Sie dem Member mehrere Instanzen von XmlElementAttribute zu. Legen Sie für jede Instanz die Type-Eigenschaft auf einen Objekttyp fest, der in das Array eingefügt werden kann.

Weitere Informationen zum Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

HinweisHinweis

Sie können das Wort XmlElement anstelle des längeren XmlElementAttribute im Code verwenden.

Im folgenden Beispiel wird die Group-Klasse serialisiert, und XmlElementAttribute wird auf einige ihrer Member angewendet. Das Feld Employees gibt ein Array von Employee-Objekten zurück. In diesem Fall gibt XmlElementAttribute an, dass das resultierende XML nicht geschachtelt wird. Dies ist das Standardverhalten für Elemente in einem Array.


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

public class Group
{
   /* Set the element name and namespace of the XML element.
   By applying an XmlElementAttribute to an array,  you instruct
   the XmlSerializer to serialize the array as a series of XML
   elements, instead of a nested set of elements. */

   [XmlElement(
   ElementName = "Members",
   Namespace = "http://www.cpandl.com")]
   public Employee[] Employees;

   [XmlElement(DataType = "double",
   ElementName = "Building")]
   public double GroupID;

   [XmlElement(DataType = "hexBinary")]
   public byte [] HexBytes;


   [XmlElement(DataType = "boolean")]
   public bool IsActive;

   [XmlElement(Type = typeof(Manager))]
   public Employee Manager;

   [XmlElement(typeof(int),
   ElementName = "ObjectNumber"),
   XmlElement(typeof(string),
   ElementName = "ObjectString")]
   public ArrayList ExtraInfo;
}   

public class Employee
{
   public string Name;
}

public class Manager:Employee{
   public int Level;
}

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


   public void SerializeObject(string filename)
   {
      // Create the XmlSerializer.
      XmlSerializer s = new XmlSerializer(typeof(Group));

      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      /* Create an instance of the group to serialize, and set
         its properties. */
      Group group = new Group();
      group.GroupID = 10.089f;
      group.IsActive = false;

      group.HexBytes = new byte[1]{Convert.ToByte(100)};

      Employee x = new Employee();
      Employee y = new Employee();

      x.Name = "Jack";
      y.Name = "Jill";

      group.Employees = new Employee[2]{x,y};

      Manager mgr = new Manager();
      mgr.Name = "Sara";
      mgr.Level = 4;
      group.Manager = mgr;

      /* Add a number and a string to the 
      ArrayList returned by the ExtraInfo property. */
      group.ExtraInfo = new ArrayList();
      group.ExtraInfo.Add(42);
      group.ExtraInfo.Add("Answer");

      // Serialize the object, and close the TextWriter.      
      s.Serialize(writer, group);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      FileStream fs = new FileStream(filename, FileMode.Open);
      XmlSerializer x = new XmlSerializer(typeof(Group));
      Group g = (Group) x.Deserialize(fs);
      Console.WriteLine(g.Manager.Name);
      Console.WriteLine(g.GroupID);
      Console.WriteLine(g.HexBytes[0]);
      foreach(Employee e in g.Employees)
      {
         Console.WriteLine(e.Name);
      }
   }
}
   


.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:
© 2014 Microsoft