Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

XmlElementAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt an, dass ein öffentliches Feld oder eine Eigenschaft, ein XML-Element darstellt bei der XmlSerializer serialisiert bzw. deserialisiert das Objekt, das es enthält.

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

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

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

NameBeschreibung
System_CAPS_pubmethodXmlElementAttribute()

Initialisiert eine neue Instanz der XmlElementAttribute-Klasse.

System_CAPS_pubmethodXmlElementAttribute(String)

Initialisiert eine neue Instanz der XmlElementAttribute -Klasse und gibt den Namen des XML-Elements.

System_CAPS_pubmethodXmlElementAttribute(String, Type)

Initialisiert eine neue Instanz der dem XmlElementAttribute und gibt den Namen des XML-Elements und einen abgeleiteten Typ für den Member an, auf die XmlElementAttribute angewendet wird. Dieser Membertyp wird verwendet, wenn die XmlSerializer serialisiert das Objekt, das es enthält.

System_CAPS_pubmethodXmlElementAttribute(Type)

Initialisiert eine neue Instanz von der XmlElementAttribute -Klasse und gibt einen Typ für den Member an, auf die XmlElementAttribute angewendet wird. Dieser Typ wird verwendet, indem Sie die XmlSerializer beim Serialisieren oder Deserialisieren des Objekts an.

NameBeschreibung
System_CAPS_pubpropertyDataType

Ruft ab oder legt den XML-Schemadefinition (XSD) Schemadatentyp des vom generierten XML-Elements der XmlSerializer.

System_CAPS_pubpropertyElementName

Ruft ab oder legt den Namen des generierten XML-Elements.

System_CAPS_pubpropertyForm

Ruft ab oder legt einen Wert, der angibt, ob das Element qualifiziert ist.

System_CAPS_pubpropertyIsNullable

Ruft ab oder legt einen Wert, der angibt, ob die XmlSerializer serialisieren muss ein Element, das festgelegt wird, um null als leeres Tag mit der xsi:nil -Attributsatz zur true.

System_CAPS_pubpropertyNamespace

Ruft ab oder legt den Namespace, der dem XML-Element, das sich ergibt, bei der Serialisierung der Klasse zugewiesen.

System_CAPS_pubpropertyOrder

Ruft ab oder legt die explizite Reihenfolge, in der die Elemente serialisiert oder deserialisiert werden.

System_CAPS_pubpropertyType

Ruft ab oder legt den Objekttyp, der das XML-Element darstellt.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Die XmlElementAttribute gehört zu einer Familie von Attributen, die steuert, wie die XmlSerializer Serialisieren oder Deserialisieren ein Objekts. Eine vollständige Liste ähnlicher Attribute finden Sie unter Attribute zur Steuerung der XML-Serialisierung.

Ein XML-Dokument enthält i. d. r. die XML-Elemente, von denen jede aus drei Teilen besteht: einem öffnenden Tag mit möglichen Attributen, ein schließendes Tag und die Daten zwischen den Tags. XML-Tags können geschachtelt sein –, die, die Daten zwischen den Tags können auch XML-Elemente. Diese Fähigkeit eines Elements, ein anderes einzuschließen ermöglicht das Dokument Datenhierarchien. Ein XML-Element kann auch Attribute enthalten.

Anwenden der XmlElementAttribute öffentlichen Feldern oder öffentlichen Lese-/Schreibeigenschaften Merkmale der XML-Elemente, z. B. den Elementnamen und den Namespace zu steuern.

Die XmlElementAttribute kann mehrmals angewendet werden, um ein Feld, das ein Array von Objekten zurückgibt. Das Zweck dieser angegeben ist (über die Type Eigenschaft) verschiedener Typen, die in das Array eingefügt werden können. Das Array im folgenden C#-Code akzeptiert z. B. Zeichenfolgen und ganze Zahlen.

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

Dadurch wird im XML-Format, die wie folgt aussehen könnte.

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

Beachten Sie, dass beim Anwenden der XmlElementAttribute mehrmals ohne Angabe einer ElementName Wert der Eigenschaft, die Elemente werden nach dem Typ des zulässigen Objekts benannt.

Wenden Sie die XmlElementAttribute auf ein Feld oder eine Eigenschaft, die ein Array zurückgibt, werden die Elemente im Array als eine Sequenz von XML-Elementen codiert.

Im Gegensatz dazu Wenn ein XmlElementAttribute wird nicht angewendet, mit solchen Felds oder einer Eigenschaft, die Elemente im Array als eine Sequenz von Elementen, die in einem Element mit dem Namen nach dem Feld bzw. die Eigenschaft geschachtelt codiert sind. (Verwenden der XmlArrayAttribute und XmlArrayItemAttribute Attribute zum Steuern, wie ein Array serialisiert wird.)

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

Wenn ein Feld oder eine Eigenschaft gibt eine ArrayList, können Sie mehrere Instanzen von Anwenden der XmlElementAttribute auf den Member. Legen Sie für jede Instanz der Type -Eigenschaft auf einen Typ des Objekts, das in das Array eingefügt werden kann.

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

System_CAPS_noteHinweis

Sie können das Wort XmlElement in Ihrem Code anstelle des längeren XmlElementAttribute.

Im folgenden Beispiel wird die Klasse serialisiert Group und wendet die XmlElementAttribute auf einige ihrer Member. Das Feld mit dem Namen Employees Gibt ein Array von Employee Objekte. In diesem Fall die XmlElementAttribute Gibt an, dass das resultierende XML nicht geschachtelt wird (dies das Standardverhalten von Elementen 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);
      }
   }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: