XmlEnumAttribute Costruttori

Definizione

Inizializza una nuova istanza della classe XmlEnumAttribute.

Overload

Nome Descrizione
XmlEnumAttribute()

Inizializza una nuova istanza della classe XmlEnumAttribute.

XmlEnumAttribute(String)

Inizializza una nuova istanza della XmlEnumAttribute classe e specifica il valore XML generato o riconosciuto dall'oggetto XmlSerializer (quando serializza o deserializza rispettivamente l'enumerazione).

XmlEnumAttribute()

Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs

Inizializza una nuova istanza della classe XmlEnumAttribute.

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

Esempio

Nell'esempio seguente vengono serializzate due classi denominate Food e FoodType. La FoodType classe contiene due enumerazioni sottoposte a override e, per ogni enumerazione, nell'esempio viene creato un XmlEnumAttribute oggetto assegnato alla XmlEnum proprietà di un XmlAttributes oggetto . L'esempio aggiunge quindi l'oggetto XmlAttributes a un XmlAttributeOverrides oggetto , che viene usato per creare un oggetto XmlSerializer.

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

// This is the class that will be serialized.
public class Food
{
   public FoodType Type;
}

public enum FoodType
{
   // Subsequent code overrides these enumerations.
   Low,
   High
}

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

   // Return an XmlSerializer used for overriding.
   public XmlSerializer CreateOverrider()
   {
      // Create the XmlOverrides and XmlAttributes objects.
      XmlAttributeOverrides xOver = new XmlAttributeOverrides();
      XmlAttributes xAttrs = new XmlAttributes();

      // Add an XmlEnumAttribute for the FoodType.Low enumeration.
      XmlEnumAttribute xEnum = new XmlEnumAttribute();
      xEnum.Name = "Cold";
      xAttrs.XmlEnum = xEnum;
      xOver.Add(typeof(FoodType), "Low", xAttrs);

      // Add an XmlEnumAttribute for the FoodType.High enumeration.
      xAttrs = new XmlAttributes();
      xEnum = new XmlEnumAttribute();
      xEnum.Name = "Hot";
      xAttrs.XmlEnum = xEnum;
      xOver.Add(typeof(FoodType), "High", xAttrs);

      // Create the XmlSerializer, and return it.
      return new XmlSerializer(typeof(Food), xOver);
   }

   public void SerializeObject(string filename)
   {
      // Create an instance of the XmlSerializer class.
      XmlSerializer mySerializer =  CreateOverrider();
      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);

      // Create an instance of the class that will be serialized.
      Food myFood = new Food();

      // Set the object properties.
      myFood.Type = FoodType.High;

      // Serialize the class, and close the TextWriter.
      mySerializer.Serialize(writer, myFood);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      XmlSerializer mySerializer = CreateOverrider();
      FileStream fs = new FileStream(filename, FileMode.Open);
      Food myFood = (Food)
      mySerializer.Deserialize(fs);

      Console.WriteLine(myFood.Type);
   }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class Food
    Public Type As FoodType
End Class

Public Enum FoodType
    ' Subsequent code overrides these enumerations.
    Low
    High
End Enum



Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("OverrideEnum.xml")
        test.DeserializeObject("OverrideEnum.xml")
    End Sub    
    
    ' Return an XmlSerializer used for overriding. 
    Public Function CreateOverrider() As XmlSerializer
        ' Create the XmlOverrides and XmlAttributes objects.
        Dim xOver As New XmlAttributeOverrides()
        Dim xAttrs As New XmlAttributes()
        
        ' Add an XmlEnumAttribute for the FoodType.Low enumeration.
        Dim xEnum As New XmlEnumAttribute()
        xEnum.Name = "Cold"
        xAttrs.XmlEnum = xEnum
        xOver.Add(GetType(FoodType), "Low", xAttrs)
        
        ' Add an XmlEnumAttribute for the FoodType.High enumeration.
        xAttrs = New XmlAttributes()
        xEnum = New XmlEnumAttribute()
        xEnum.Name = "Hot"
        xAttrs.XmlEnum = xEnum
        xOver.Add(GetType(FoodType), "High", xAttrs)
        
        ' Create the XmlSerializer, and return it.
        Return New XmlSerializer(GetType(Food), xOver)
    End Function
    
        
    Public Sub SerializeObject(ByVal filename As String)
        ' Create an instance of the XmlSerializer class.
        Dim mySerializer As XmlSerializer = CreateOverrider()
        ' Writing the file requires a TextWriter.
        Dim writer As New StreamWriter(filename)
        
        ' Create an instance of the class that will be serialized.
        Dim myFood As New Food()
        
        ' Set the object properties.
        myFood.Type = FoodType.High
        
        ' Serialize the class, and close the TextWriter.
        mySerializer.Serialize(writer, myFood)
        writer.Close()
    End Sub
    
    
    Public Sub DeserializeObject(ByVal filename As String)
        Dim mySerializer As XmlSerializer = CreateOverrider()
        Dim fs As New FileStream(filename, FileMode.Open)
        Dim myFood As Food = CType(mySerializer.Deserialize(fs), Food)
        
        Console.WriteLine(myFood.Type)
    End Sub
End Class

Commenti

È possibile utilizzare per eseguire l'override XmlEnumAttribute di un'enumerazione esistente.

Annotazioni

È possibile usare la parola XmlEnum nel codice anziché quella più lunga XmlEnumAttribute.

Vedi anche

Si applica a

XmlEnumAttribute(String)

Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs
Origine:
XmlEnumAttribute.cs

Inizializza una nuova istanza della XmlEnumAttribute classe e specifica il valore XML generato o riconosciuto dall'oggetto XmlSerializer (quando serializza o deserializza rispettivamente l'enumerazione).

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

Parametri

name
String

Nome di override del membro di enumerazione.

Esempio

Nell'esempio seguente viene applicato ai XmlEnumAttribute membri di un'enumerazione . Quando genera XmlSerializer dati XML per questa enumerazione, i dati sono conformi ai valori delle Name proprietà.

public enum EmployeeStatus
{
   [XmlEnum("Single")]
   One,
   [XmlEnum("Double")]
   Two,
   [XmlEnum("Triple")]
   Three
}
Public Enum EmployeeStatus
   <XmlEnumAttribute("Single")> One
   <XmlEnumAttribute("Double")> Two
   <XmlEnumAttribute("Triple")> Three
End Enum

Commenti

Annotazioni

È possibile usare la parola XmlEnum nel codice anziché quella più lunga XmlEnumAttribute.

Vedi anche

Si applica a