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

XmlTextAttribute-Klasse

 

Veröffentlicht: Juli 2016

Gibt an, um die XmlSerializer dass der Member als XML-Text behandelt werden muss, wenn die Klasse, die es enthält serialisiert oder deserialisiert wird.

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

System.Object
  System.Attribute
    System.Xml.Serialization.XmlTextAttribute

[AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue)]
public class XmlTextAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodXmlTextAttribute()

Initialisiert eine neue Instanz der XmlTextAttribute-Klasse.

System_CAPS_pubmethodXmlTextAttribute(Type)

Initialisiert eine neue Instanz der XmlTextAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyDataType

Ruft ab oder legt den Typ der generierte Text XML Schema Definition Language (XSD) Daten der XmlSerializer.

System_CAPS_pubpropertyType

Ruft ab oder legt den Typ des Elements fest.

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 XmlTextAttribute gehört zu einer Familie von Attributen, die steuert, wie die XmlSerializer serialisiert und deserialisiert (durch seine Serialize und Deserialize Methoden). Eine vollständige Liste ähnlicher Attribute finden Sie unter Attribute zur Steuerung der XML-Serialisierung.

Nur eine Instanz der XmlTextAttribute -Klasse in einer Klasse angewendet werden kann.

Sie können Anwenden der XmlTextAttribute auf öffentliche Felder und öffentliche Lese-/Schreibeigenschaften, die Primitive Typen und Enumerationstypen zurückgeben.

Sie können Anwenden der XmlTextAttribute auf ein Feld oder eine Eigenschaft, die ein Array aus Zeichenfolgen zurückgibt. Sie können auch das Attribut anwenden, um ein Array vom Typ Object aber Sie müssen die Type Eigenschaft in eine Zeichenfolge. In diesem Fall werden alle in das Array eingefügten Zeichenfolgen als XML-Text serialisiert.

Die XmlTextAttribute kann auch angewendet werden, auf ein Feld, das gibt ein XmlNode oder ein Array von XmlNode Objekte.

In der Standardeinstellung die XmlSerializer einen Klassenmember als XML-Element serialisiert. Allerdings wenden Sie die XmlTextAttribute auf einen Member, die XmlSerializer übersetzt den Wert in der XML-Text. Dies bedeutet, dass der Wert als Inhalt eines XML-Elements codiert wird.

Die XML Schema Definition-Tool (Xsd.exe) gelegentlich generiert die XmlTextAttribute beim Erstellen von Klassen aus einer XML-Schema (XSD-Datei). Dies tritt auf, wenn das Schema enthält eine complexType mit gemischtem Inhalt; enthält die entsprechende Klasse in diesem Fall ein Element, das ein Array von Zeichenfolgen, gibt die XmlTextAttribute angewendet wird. Zum Beispiel wenn die Xml Schema Definition Tool verarbeitet dieses Schema:

<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="LinkList" type="LinkList" />
  <xs:complexType name="LinkList" mixed="true">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="next" type="LinkList" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

Die folgende Klasse wird generiert (Leerzeichen und Hinweise wurden entfernt):

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class LinkList
{

    private int idField;
    private string nameField;
    private LinkList nextField;
    private string[] textField;

    public int id
    {
        get
        {
            return this.idField;
        }
        set
        {
            this.idField = value;
        }
    }

    public string name
    {
        get
        {
            return this.nameField;
        }
        set
        {
            this.nameField = value;
        }
    }

    public LinkList next
    {
        get
        {
            return this.nextField;
        }
        set
        {
            this.nextField = value;
        }
    }

    [System.Xml.Serialization.XmlTextAttribute()]
    public string[] Text
    {
        get
        {
            return this.textField;
        }
        set
        {
            this.textField = value;
        }
    }
}

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

System_CAPS_noteHinweis

Sie können das Wort XmlText in Ihrem Code anstelle des längeren XmlTextAttribute.

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


public class Group1{
   // The XmlTextAttribute with type set to string informs the 
   // XmlSerializer that strings should be serialized as XML text.
   [XmlText(typeof(string))]
   [XmlElement(typeof(int))]  
   [XmlElement(typeof(double))]
   public object [] All= new object []{321, "One", 2, 3.0, "Two" };
}

public class Group2{
   [XmlText(Type = typeof(GroupType))]
   public GroupType Type;
}
public enum GroupType{
   Small,
   Medium,
   Large
}

public class Group3{
   [XmlText(Type=typeof(DateTime))]
   public DateTime CreationTime = DateTime.Now;
}

public class Test{
   static void Main(){
      Test t = new Test();
      t.SerializeArray("XmlText1.xml");
      t.SerializeEnum("XmlText2.xml");
      t.SerializeDateTime("XmlText3.xml");
   }

   private void SerializeArray(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group1));
      Group1 myGroup1 = new Group1();

      TextWriter writer = new StreamWriter(filename);

      ser.Serialize(writer, myGroup1);
      writer.Close();
   }

   private void SerializeEnum(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group2));
      Group2 myGroup = new Group2();
      myGroup.Type = GroupType.Medium;
      TextWriter writer = new StreamWriter(filename);

      ser.Serialize(writer, myGroup);
      writer.Close();
   }

   private void SerializeDateTime(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group3));
      Group3 myGroup = new Group3();
      TextWriter writer = new StreamWriter(filename);

      ser.Serialize(writer, myGroup);
      writer.Close();
   }   
}

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: