Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore SoapEnumAttribute ()

 

Data di pubblicazione: ottobre 2016

Inizializza una nuova istanza della classe SoapEnumAttribute.

Spazio dei nomi:   System.Xml.Serialization
Assembly:  System.Xml (in System.Xml.dll)

public SoapEnumAttribute()

Utilizzare il SoapEnumAttribute per eseguire l'override di un'enumerazione esistente. Creare un nuovo SoapEnumAttribute, impostarne le proprietà e assegnare l'oggetto per il SoapEnum proprietà di un SoapAttributes. Per ogni membro dell'enumerazione, è necessario creare un nuovo SoapAttributes e aggiungerlo al SoapAttributeOverrides. Per ulteriori informazioni, vedere il SoapAttributeOverrides Cenni preliminari sulla classe.

System_CAPS_noteNota

È possibile utilizzare la parola SoapEnum nel codice anziché la forma estesa SoapEnumAttribute.

Nell'esempio seguente viene utilizzata la XmlSerializer per serializzare una classe denominata Food che include un'enumerazione denominata FoodType. Il FoodType viene eseguito l'override di un'enumerazione tramite la creazione di un SoapEnumAttribute per ogni enumerazione e l'impostazione di SoapEnum proprietà di un SoapAttributes per il SoapEnumAttribute. Il SoapAttributes viene aggiunto a un SoapAttributeOverrides che viene utilizzato per creare un XmlSerializer.

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

public class Group{
   public string GroupName;
   public GroupType Grouptype;
}

public enum GroupType{
   // Use the SoapEnumAttribute to instruct the XmlSerializer
   // to generate Small and Large instead of A and B.
   [SoapEnum("Small")]
   A,
   [SoapEnum("Large")]
   B
}

public class Run {
   static void Main(){
      Run test= new Run();
      test.SerializeObject("SoapEnum.xml");
      test.SerializeOverride("SoapOverride.xml");
      Console.WriteLine("Fininished writing two files");
   }

     private void SerializeObject(string filename){
      // Create an instance of the XmlSerializer Class.
      XmlTypeMapping mapp  =
      (new SoapReflectionImporter()).ImportTypeMapping(typeof(Group));
      XmlSerializer mySerializer =  new XmlSerializer(mapp);

      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);

      // Create an instance of the Class that will be serialized.
      Group myGroup = new Group();

      // Set the object properties.
      myGroup.GroupName = ".NET";
      myGroup.Grouptype= GroupType.A;

      // Serialize the Class, and close the TextWriter.
      mySerializer.Serialize(writer, myGroup);
       writer.Close();
   }

   private void SerializeOverride(string fileName){
      SoapAttributeOverrides soapOver = new SoapAttributeOverrides();
      SoapAttributes SoapAtts = new SoapAttributes();

      // Add a SoapEnumAttribute for the GroupType.A enumerator.       
      // Instead of 'A'  it will be "West".
      SoapEnumAttribute soapEnum = new SoapEnumAttribute("West");
      // Override the "A" enumerator.
      SoapAtts.SoapEnum = soapEnum;
      soapOver.Add(typeof(GroupType), "A", SoapAtts);

      // Add another SoapEnumAttribute for the GroupType.B enumerator.
      // Instead of //B// it will be "East".
      SoapAtts= new SoapAttributes();
      soapEnum = new SoapEnumAttribute();
      soapEnum.Name = "East";
      SoapAtts.SoapEnum = soapEnum;
      soapOver.Add(typeof(GroupType), "B", SoapAtts);

      // Create an XmlSerializer used for overriding.
      XmlTypeMapping map = 
      new SoapReflectionImporter(soapOver).
      ImportTypeMapping(typeof(Group));
      XmlSerializer ser = new XmlSerializer(map);
      Group myGroup = new Group();
      myGroup.GroupName = ".NET";
      myGroup.Grouptype = GroupType.B;
      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(fileName);
      ser.Serialize(writer, myGroup);
      writer.Close();
   	}
}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: