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

Classe XmlTypeMapping

 

Data di pubblicazione: ottobre 2016

Contiene un mapping di un tipo a altro.

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

System.Object
  System.Xml.Serialization.XmlMapping
    System.Xml.Serialization.XmlTypeMapping

public class XmlTypeMapping : XmlMapping

NomeDescrizione
System_CAPS_pubpropertyElementName

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Ottenere il nome dell'elemento mappato.(Ereditato da XmlMapping.)

System_CAPS_pubpropertyNamespace

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Ottiene lo spazio dei nomi dell'elemento mappato.(Ereditato da XmlMapping.)

System_CAPS_pubpropertyTypeFullName

Il nome del tipo completo che include lo spazio dei nomi (o spazi dei nomi) e il tipo.

System_CAPS_pubpropertyTypeName

Ottiene il nome del tipo dell'oggetto mappato.

System_CAPS_pubpropertyXsdElementName

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Ottiene il nome dell'elemento XSD del mapping.(Ereditato da XmlMapping.)

System_CAPS_pubpropertyXsdTypeName

Ottiene il nome dell'elemento XML dell'oggetto mappato.

System_CAPS_pubpropertyXsdTypeNamespace

Ottiene lo spazio dei nomi XML dell'oggetto mappato.

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodSetKey(String)

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Imposta la chiave utilizzata per cercare il mapping.(Ereditato da XmlMapping.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

La XmlTypeMapping classe viene utilizzata per serializzare un oggetto come XML SOAP codificato. Il codice XML risultante è conforme alla sezione 5 del documento "Simple Object Access Protocol (SOAP) 1.1" World Wide Web Consortium (www.w3.org). Creare un XmlTypeMapping chiamando il ImportTypeMapping metodo la SoapReflectionImporter classe. Utilizzare il XmlTypeMapping per costruire un'istanza di XmlSerializer (classe). Per controllare la serializzazione, utilizzare uno degli attributi elencati Attributi per il controllo della serializzazione SOAP codificata.

Nell'esempio seguente viene serializzata un'istanza di una classe denominata Transportation che contiene un campo denominato Vehicle. Oggetto SoapElementAttribute viene applicato al campo. Quando il campo viene serializzato, il nome dell'elemento XML è "Wheels" anziché "Vehicle". Il SerializeOverride metodo crea un SoapElementAttribute e imposta la SoapElement proprietà di un SoapAttributes per il SoapElementAttribute. Il SoapAttributes viene aggiunto a un SoapAttributeOverrides che viene utilizzato per creare un XmlTypeMapping. Un XmlSerializer viene costruito con la XmlTypeMapping, e un'istanza della Transportation classe viene nuovamente serializzata. Poiché il SoapElementAttribute è utilizzato per eseguire l'override della serializzazione, il nome dell'elemento XML generato è ora "Truck" anziché "Wheels".

using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections;
using System.Xml;
using System.Text;
public class Transportation
{
   // The SoapElementAttribute specifies that the
   // generated XML element name will be "Wheels"
   // instead of "Vehicle".
   [SoapElement("Wheels")]
   public string Vehicle;
   [SoapElement(DataType = "dateTime")]
   public DateTime CreationDate;
   [SoapElement(IsNullable = true)]
   public Thing thing;

}

public class Thing{ 
   [SoapElement(IsNullable=true)] public string ThingName;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.SerializeObject("SoapElementOriginal.xml");
      t.SerializeOverride("SoapElementOverride.xml");
      Console.WriteLine("Finished writing two XML files.");
   }

   // Return an XmlSerializer used for overriding.
   public XmlSerializer CreateSoapOverrider()
   {
      // Create the SoapAttributes and SoapAttributeOverrides objects.
      SoapAttributes soapAttrs = new SoapAttributes();

      SoapAttributeOverrides soapOverrides = 
      new SoapAttributeOverrides();

      /* Create an SoapElementAttribute to override 
      the Vehicles property. */
      SoapElementAttribute soapElement1 = 
      new SoapElementAttribute("Truck");
      // Set the SoapElement to the object.
      soapAttrs.SoapElement= soapElement1;

      /* Add the SoapAttributes to the SoapAttributeOverrides,
      specifying the member to override. */
      soapOverrides.Add(typeof(Transportation), "Vehicle", soapAttrs);

      // Create the XmlSerializer, and return it.
      XmlTypeMapping myTypeMapping = (new SoapReflectionImporter
      (soapOverrides)).ImportTypeMapping(typeof(Transportation));
      return new XmlSerializer(myTypeMapping);
   }

   public void SerializeOverride(string filename)
   {
      // Create an XmlSerializer instance.
      XmlSerializer ser = CreateSoapOverrider();

      // Create the object and serialize it.
      Transportation myTransportation = 
      new Transportation();

      myTransportation.Vehicle = "MyCar";
      myTransportation.CreationDate=DateTime.Now;
      myTransportation.thing = new Thing();

      XmlTextWriter writer = 
      new XmlTextWriter(filename, Encoding.UTF8);
      writer.Formatting = Formatting.Indented;
      writer.WriteStartElement("wrapper");
      ser.Serialize(writer, myTransportation);
      writer.WriteEndElement();
      writer.Close();
   }
   public void SerializeObject(string filename){
      // Create an XmlSerializer instance.
      XmlSerializer ser = new XmlSerializer(typeof(Transportation));
      Transportation myTransportation = 
      new Transportation();
      myTransportation.Vehicle = "MyCar";
      myTransportation.CreationDate = DateTime.Now;
      myTransportation.thing = new Thing();
      XmlTextWriter writer = 
      new XmlTextWriter(filename, Encoding.UTF8);
      writer.Formatting = Formatting.Indented;
      writer.WriteStartElement("wrapper");
      ser.Serialize(writer, myTransportation);
      writer.WriteEndElement();
      writer.Close();
   }
}

.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: