Auf Englisch lesen

Freigeben über


SoapAttributes.SoapElement Eigenschaft

Definition

Ruft das zu überschreibende SoapElementAttribute ab oder legt dieses fest.

C#
public System.Xml.Serialization.SoapElementAttribute? SoapElement { get; set; }
C#
public System.Xml.Serialization.SoapElementAttribute SoapElement { get; set; }

Eigenschaftswert

Das zu überschreibende SoapElementAttribute.

Beispiele

Im folgenden Beispiel wird eine Klasse namens Transportationserialisiert. Die Serialisierung des Vehicle Felds wird überschrieben. In der CreateOverrideSerializer -Methode wird ein SoapAttributeOverrides erstellt, und für jedes überschriebene Element oder jede überschriebene Enumeration wird ein SoapAttributes mit dem entsprechenden Eigenschaftensatz erstellt und dem SoapAttributeOverrideshinzugefügt. Ein XmlTypeMapping wird mit SoapAttributeOverrideserstellt, das verwendet wird, XmlTypeMapping um die zu erstellen, die XmlSerializer die Standardserialisierung außer Kraft setzt.

C#
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();
   }
}

Hinweise

Wird SoapElementAttribute verwendet, um die Serialisierung eines Klassenmembers als XML-Element zu steuern. Legen Sie die SoapElement -Eigenschaft auf ein neues SoapElementAttribute fest, um die Serialisierung eines Klassenmembers als XML-Element zu überschreiben, indem Sie ein neues SoapElementAttribute erstellen und der Eigenschaft zuweisen. Fügen Sie dann zu SoapAttributes einer SoapAttributeOverrideshinzu. Erstellen Sie mit XmlTypeMappingSoapAttributeOverrides, und erstellen Sie dann mit XmlSerializerXmlTypeMapping.

Weitere Informationen finden Sie in der SoapAttributeOverrides Klassenübersicht.

Gilt für:

Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Weitere Informationen