Прочитать на английском

Поделиться через


XmlTypeMapping Класс

Определение

Содержит сопоставление одного типа с другим.

public class XmlTypeMapping : System.Xml.Serialization.XmlMapping
Наследование
XmlTypeMapping

Примеры

В следующем примере выполняется сериализация экземпляра класса с именем Transportation , содержащего поле с именем Vehicle. Объект SoapElementAttribute применяется к полю. При сериализации поля имя XML-элемента будет "Wheels" вместо "Vehicle". Метод SerializeOverride создает SoapElementAttribute и задает свойству SoapElementAttributeSoapElementSoapAttributes объекта значение . Добавляется SoapAttributes в SoapAttributeOverrides объект , который используется для создания XmlTypeMapping. Создается XmlSerializer с XmlTypeMappingпомощью , и экземпляр Transportation класса снова сериализуется. SoapElementAttribute Так как используется для переопределения сериализации, созданное имя XML-элемента теперь будет "Truck" вместо "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();
   }
}

Комментарии

Класс XmlTypeMapping используется для сериализации объекта в виде закодированного XML-файла SOAP. Результирующий XML-код соответствует разделу 5 документа консорциума World Wide Web , "Протокол SOAP 1.1". Создайте , XmlTypeMapping вызвав ImportTypeMapping метод SoapReflectionImporter класса . Используйте для XmlTypeMapping создания экземпляра XmlSerializer класса . Чтобы управлять сериализацией, используйте один из атрибутов, перечисленных в разделе Атрибуты, управляющие закодированной сериализацией SOAP.

Свойства

ElementName

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Возвращает имя сопоставленного элемента.

ElementName

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Возвращает имя сопоставленного элемента.

(Унаследовано от XmlMapping)
Namespace

Получает пространство имен XML сопоставляемого объекта.

Namespace

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Возвращает пространство имен сопоставленного элемента.

(Унаследовано от XmlMapping)
TypeFullName

Полное имя типа, включающее пространство имен (или пространства имен) и типы.

TypeName

Получает имя типа сопоставляемого объекта.

XsdElementName

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Возвращает имя XSD-элемента сопоставления.

(Унаследовано от XmlMapping)
XsdTypeName

Получает имя XML-элемента сопоставляемого объекта.

XsdTypeNamespace

Получает пространство имен XML сопоставляемого объекта.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
SetKey(String)

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Задает ключ для выполнения поиска в сопоставлении.

(Унаследовано от XmlMapping)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

Продукт Версии
.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

См. также раздел