Freigeben über


XmlElementAttribute Konstruktoren

Definition

Initialisiert eine neue Instanz der XmlElementAttribute-Klasse.

Überlädt

Name Beschreibung
XmlElementAttribute()

Initialisiert eine neue Instanz der XmlElementAttribute-Klasse.

XmlElementAttribute(String)

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

XmlElementAttribute(Type)

Initialisiert eine neue Instanz der XmlElementAttribute Klasse und gibt einen Typ für das Element an, auf das die XmlElementAttribute Klasse angewendet wird. Dieser Typ wird vom XmlSerializer Serialisieren oder Deserialisieren des Objekts verwendet, das es enthält.

XmlElementAttribute(String, Type)

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

XmlElementAttribute()

Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs

Initialisiert eine neue Instanz der XmlElementAttribute-Klasse.

public:
 XmlElementAttribute();
public XmlElementAttribute();
Public Sub New ()

Beispiele

Im folgenden Beispiel wird die XmlElementAttribute Klasse angewendet.

public class MyClass
{
   [XmlElement()]
   public string TeacherName;
}
Public Class MyClass1
    <XmlElement()> Public TeacherName As String
End Class

Gilt für:

XmlElementAttribute(String)

Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs

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

public:
 XmlElementAttribute(System::String ^ elementName);
public XmlElementAttribute(string elementName);
public XmlElementAttribute(string? elementName);
new System.Xml.Serialization.XmlElementAttribute : string -> System.Xml.Serialization.XmlElementAttribute
Public Sub New (elementName As String)

Parameter

elementName
String

Der XML-Elementname des serialisierten Elements.

Beispiele

Das folgende Beispiel zeigt eine einfache Klasse, die ein einzelnes Feld mit dem Namen Vehiclesenthält. Das Beispiel wendet das XmlElementAttribute Feld an und schließt den elementName Parameter ein und weist dadurch das Generieren von XmlSerializer XML-Elementen mit dem Namen "Cars" anstelle von "Vehicles" an.

public class Transportation
{
   [XmlElement("Cars")]
   public string Vehicles;
}
Public Class Transportation
    <XmlElement("Cars")> Public Vehicles As String
End Class

Hinweise

Standardmäßig verwendet der XmlSerializer Membername beim Serialisieren einer Klasseninstanz den Membernamen als XML-Elementnamen. Ein Feld mit dem Namen Vehicle generiert z. B. ein XML-Element mit dem Namen Vehicle. Wenn Sie jedoch ein anderes Element benötigen, z Cars. B. , übergeben Sie es in den elementName Parameter.

Gilt für:

XmlElementAttribute(Type)

Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs

Initialisiert eine neue Instanz der XmlElementAttribute Klasse und gibt einen Typ für das Element an, auf das die XmlElementAttribute Klasse angewendet wird. Dieser Typ wird vom XmlSerializer Serialisieren oder Deserialisieren des Objekts verwendet, das es enthält.

public:
 XmlElementAttribute(Type ^ type);
public XmlElementAttribute(Type type);
public XmlElementAttribute(Type? type);
new System.Xml.Serialization.XmlElementAttribute : Type -> System.Xml.Serialization.XmlElementAttribute
Public Sub New (type As Type)

Parameter

type
Type

Das Type Objekt, das vom Elementtyp abgeleitet ist.

Beispiele

Im folgenden Beispiel wird eine Klasse serialisiert Orchestra , die ein einzelnes Feld mit dem Namen Instrumentsenthält, das ein Array von Instrument Objekten zurückgibt. Eine zweite Klasse mit dem Namen Brass erbt von der Instrument Klasse. Das Beispiel wendet das XmlElementAttributeInstruments Feld an und gibt den Brass Typ an, sodass das Instruments Feld Objekte akzeptieren Brass kann. Im Beispiel wird auch der Name des XML-Elements angegeben, indem die ElementName Eigenschaft festgelegt wird.

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)
    {
      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      XmlAttributeOverrides attrOverrides =
         new XmlAttributeOverrides();
      XmlAttributes attrs = new XmlAttributes();

      // Creates an XmlElementAttribute that overrides the Instrument type.
      XmlElementAttribute attr = new
      XmlElementAttribute(typeof(Brass));
      attr.ElementName = "Brass";

      // Adds the element to the collection of elements.
      attrs.XmlElements.Add(attr);
      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

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

      // Creates the object to serialize.
      Orchestra band = new Orchestra();

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

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

      // Creates an XmlElementAttribute that override the Instrument type.
      XmlElementAttribute attr = new
      XmlElementAttribute(typeof(Brass));
      attr.ElementName = "Brass";

      // Adds the element to the collection of elements.
      attrs.XmlElements.Add(attr);
      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

      // Creates 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:");

      /* Deserializing differs from serializing. To read the
         derived-object values, 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);
      }
   }
}
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml.Serialization

Public Class Orchestra
    Public Instruments() As Instrument
End Class

Public Class Instrument
    Public Name As String
End Class

Public Class Brass
    Inherits Instrument
    Public IsValved As Boolean
End Class

Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("Override.xml")
        test.DeserializeObject("Override.xml")
    End Sub
    
    
    Public Sub SerializeObject(filename As String)
        ' To write the file, a TextWriter is required.
        Dim writer As New StreamWriter(filename)
        
        Dim attrOverrides As New XmlAttributeOverrides()
        Dim attrs As New XmlAttributes()
        
        ' Creates an XmlElementAttribute that overrides the Instrument type.
        Dim attr As New XmlElementAttribute(GetType(Brass))
        attr.ElementName = "Brass"
        
        ' Adds the element to the collection of elements.
        attrs.XmlElements.Add(attr)
        attrOverrides.Add(GetType(Orchestra), "Instruments", attrs)
        
        ' Creates the XmlSerializer using the XmlAttributeOverrides.
        Dim s As New XmlSerializer(GetType(Orchestra), attrOverrides)
        
        ' Creates the object to serialize.
        Dim band As New Orchestra()
        
        ' Creates an object of the derived type.
        Dim i As New Brass()
        i.Name = "Trumpet"
        i.IsValved = True
        Dim myInstruments() As Instrument = {i}
        band.Instruments = myInstruments
        s.Serialize(writer, band)
        writer.Close()
    End Sub
    
    
    Public Sub DeserializeObject(filename As String)
        Dim attrOverrides As New XmlAttributeOverrides()
        Dim attrs As New XmlAttributes()
        
        ' Create an XmlElementAttribute that override the Instrument type.
        Dim attr As New XmlElementAttribute(GetType(Brass))
        attr.ElementName = "Brass"
        
        ' Add the element to the collection of elements.
        attrs.XmlElements.Add(attr)
        attrOverrides.Add(GetType(Orchestra), "Instruments", attrs)
        
        ' Create the XmlSerializer using the XmlAttributeOverrides.
        Dim s As New XmlSerializer(GetType(Orchestra), attrOverrides)
        
        Dim fs As New FileStream(filename, FileMode.Open)
        Dim band As Orchestra = CType(s.Deserialize(fs), Orchestra)
        Console.WriteLine("Brass:")
        
        ' Deserializing differs from serializing. To read the
        ' derived-object values, declare an object of the derived
        ' type (Brass) and cast the Instrument instance to it. 
        Dim b As Brass
        Dim i As Instrument
        For Each i In  band.Instruments
            b = CType(i, Brass)
            Console.WriteLine((b.Name + ControlChars.Cr + b.IsValved.ToString()))
        Next i
    End Sub
End Class

Hinweise

Verwenden Sie den type Parameter, um einen Typ anzugeben, der von einer Basisklasse abgeleitet ist. Angenommen, eine Eigenschaft mit dem Namen MyAnimal gibt ein Animal Objekt zurück. Sie möchten das Objekt verbessern, sodass Sie eine neue Klasse mit dem Namen Mammal erstellen, die von der Animal Klasse erbt. Um die XmlSerializer Klasse anzuweisen, die Mammal Klasse zu akzeptieren, wenn sie die MyAnimal Eigenschaft serialisiert, übergeben Sie die TypeMammal Klasse an den Konstruktor.

Gilt für:

XmlElementAttribute(String, Type)

Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs
Quelle:
XmlElementAttribute.cs

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

public:
 XmlElementAttribute(System::String ^ elementName, Type ^ type);
public XmlElementAttribute(string elementName, Type type);
public XmlElementAttribute(string? elementName, Type? type);
new System.Xml.Serialization.XmlElementAttribute : string * Type -> System.Xml.Serialization.XmlElementAttribute
Public Sub New (elementName As String, type As Type)

Parameter

elementName
String

Der XML-Elementname des serialisierten Elements.

type
Type

Das Type Objekt, das vom Elementtyp abgeleitet ist.

Beispiele

Im folgenden Beispiel wird eine Klasse serialisiert Orchestra , die ein einzelnes Feld mit dem Namen Instrumentsenthält, das ein Array von Instrument Objekten zurückgibt. Eine zweite Klasse mit dem Namen Brass erbt von der Instrument Klasse. Das Beispiel wendet das XmlElementAttributeInstruments Feld an und gibt den Brass Typ an, sodass das Instruments Feld Objekte akzeptieren Brass kann. Im Beispiel wird auch der Name des XML-Elements angegeben, indem die ElementName Eigenschaft festgelegt wird.

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)
    {
      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      XmlAttributeOverrides attrOverrides =
         new XmlAttributeOverrides();
      XmlAttributes attrs = new XmlAttributes();

      // Creates an XmlElementAttribute that overrides the Instrument type.
      XmlElementAttribute attr = new
      XmlElementAttribute(typeof(Brass));
      attr.ElementName = "Brass";

      // Adds the element to the collection of elements.
      attrs.XmlElements.Add(attr);
      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

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

      // Creates the object to serialize.
      Orchestra band = new Orchestra();

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

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

      // Creates an XmlElementAttribute that override the Instrument type.
      XmlElementAttribute attr = new
      XmlElementAttribute(typeof(Brass));
      attr.ElementName = "Brass";

      // Adds the element to the collection of elements.
      attrs.XmlElements.Add(attr);
      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

      // Creates 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:");

      /* Deserializing differs from serializing. To read the
         derived-object values, 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);
      }
   }
}
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml.Serialization

Public Class Orchestra
    Public Instruments() As Instrument
End Class

Public Class Instrument
    Public Name As String
End Class

Public Class Brass
    Inherits Instrument
    Public IsValved As Boolean
End Class

Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("Override.xml")
        test.DeserializeObject("Override.xml")
    End Sub
    
    
    Public Sub SerializeObject(filename As String)
        ' To write the file, a TextWriter is required.
        Dim writer As New StreamWriter(filename)
        
        Dim attrOverrides As New XmlAttributeOverrides()
        Dim attrs As New XmlAttributes()
        
        ' Creates an XmlElementAttribute that overrides the Instrument type.
        Dim attr As New XmlElementAttribute(GetType(Brass))
        attr.ElementName = "Brass"
        
        ' Adds the element to the collection of elements.
        attrs.XmlElements.Add(attr)
        attrOverrides.Add(GetType(Orchestra), "Instruments", attrs)
        
        ' Creates the XmlSerializer using the XmlAttributeOverrides.
        Dim s As New XmlSerializer(GetType(Orchestra), attrOverrides)
        
        ' Creates the object to serialize.
        Dim band As New Orchestra()
        
        ' Creates an object of the derived type.
        Dim i As New Brass()
        i.Name = "Trumpet"
        i.IsValved = True
        Dim myInstruments() As Instrument = {i}
        band.Instruments = myInstruments
        s.Serialize(writer, band)
        writer.Close()
    End Sub
    
    
    Public Sub DeserializeObject(filename As String)
        Dim attrOverrides As New XmlAttributeOverrides()
        Dim attrs As New XmlAttributes()
        
        ' Create an XmlElementAttribute that override the Instrument type.
        Dim attr As New XmlElementAttribute(GetType(Brass))
        attr.ElementName = "Brass"
        
        ' Add the element to the collection of elements.
        attrs.XmlElements.Add(attr)
        attrOverrides.Add(GetType(Orchestra), "Instruments", attrs)
        
        ' Create the XmlSerializer using the XmlAttributeOverrides.
        Dim s As New XmlSerializer(GetType(Orchestra), attrOverrides)
        
        Dim fs As New FileStream(filename, FileMode.Open)
        Dim band As Orchestra = CType(s.Deserialize(fs), Orchestra)
        Console.WriteLine("Brass:")
        
        ' Deserializing differs from serializing. To read the
        ' derived-object values, declare an object of the derived
        ' type (Brass) and cast the Instrument instance to it. 
        Dim b As Brass
        Dim i As Instrument
        For Each i In  band.Instruments
            b = CType(i, Brass)
            Console.WriteLine((b.Name + ControlChars.Cr + b.IsValved.ToString()))
        Next i
    End Sub
End Class

Hinweise

Standardmäßig verwendet der XmlSerializer Membername beim Serialisieren einer Klasseninstanz den Membernamen als XML-Elementnamen. Ein Feld mit dem Namen Vehicle generiert z. B. ein XML-Element mit dem Namen Vehicle. Wenn Sie jedoch ein anderes Element benötigen, z Cars. B. , übergeben Sie es in den elementName Parameter.

Verwenden Sie den type Parameter, um einen Typ anzugeben, der von einer Basisklasse abgeleitet ist. Angenommen, eine Eigenschaft mit dem Namen MyAnimal gibt ein Animal Objekt zurück. Sie möchten das Objekt verbessern, sodass Sie eine neue Klasse mit dem Namen Mammal erstellen, die von der Animal Klasse erbt. Um die XmlSerializer Klasse anzuweisen, die Mammal Klasse zu akzeptieren, wenn sie die MyAnimal Eigenschaft serialisiert, übergeben Sie die TypeMammal Klasse an den Konstruktor.

Gilt für: