XmlTypeMapping 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含从一种类型到另一种类型的映射。
public ref class XmlTypeMapping : System::Xml::Serialization::XmlMappingpublic class XmlTypeMapping : System.Xml.Serialization.XmlMappingtype XmlTypeMapping = class
    inherit XmlMappingPublic Class XmlTypeMapping
Inherits XmlMapping- 继承
示例
以下示例序列化名为 Transportation 的类的实例,该类包含名为 的 Vehicle字段。 将 SoapElementAttribute 应用于 字段。 序列化字段时,XML 元素名称为“Wheel”而不是“Vehicle”。 方法SerializeOverride创建 ,SoapElementAttribute并将 的 SoapAttributes 属性设置为 SoapElementSoapElementAttribute。 将 SoapAttributes 添加到 SoapAttributeOverrides 用于创建 的 XmlTypeMapping。 
              XmlSerializer使用 XmlTypeMapping构造 ,并再次序列化 类的Transportation实例。 
              SoapElementAttribute由于 用于替代序列化,因此生成的 XML 元素名称现在为“Truck”而不是“Wheel”。
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();
   }
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Collections
Imports System.Xml
Imports System.Text
Public Class Transportation
   ' The SoapElementAttribute specifies that the
   ' generated XML element name will be "Wheels"
   ' instead of "Vehicle".
   <SoapElement("Wheels")> Public Vehicle As String 
   <SoapElement(DataType:= "dateTime")> _
   public CreationDate As DateTime    
   <SoapElement(IsNullable:= true)> _
   public thing As Thing
End Class
Public Class Thing
   <SoapElement(IsNullable:=true)> public ThingName As string 
End Class
Public Class Test
   Shared Sub Main()
      Dim t As Test = New Test()
      t.SerializeObject("SoapElementOriginalVb.xml")
      t.SerializeOverride("SoapElementOverrideVb.xml")
      Console.WriteLine("Finished writing two XML files.")
   End Sub
   ' Return an XmlSerializer used for overriding.
   Public Function CreateSoapOverrider() As XmlSerializer 
      ' Create the SoapAttributes and SoapAttributeOverrides objects.
      Dim soapAttrs As SoapAttributes = New SoapAttributes()
      Dim soapOverrides As SoapAttributeOverrides = _
      New SoapAttributeOverrides()
            
      ' Create a SoapElementAttribute to override 
      ' the Vehicles property. 
      Dim soapElement1 As SoapElementAttribute = _
      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(GetType(Transportation), "Vehicle", soapAttrs)
      
      ' Create the XmlSerializer, and return it.
      Dim myTypeMapping As XmlTypeMapping = (New _
      SoapReflectionImporter (soapOverrides)).ImportTypeMapping _
      (GetType(Transportation))
      return New XmlSerializer(myTypeMapping)
   End Function
   Public Sub SerializeOverride(filename As String)
      ' Create an XmlSerializer instance.
      Dim ser As XmlSerializer = CreateSoapOverrider()
      ' Create the object and serialize it.
      Dim myTransportation As Transportation = _
      New Transportation()
      myTransportation.Vehicle = "MyCar"
      myTransportation.CreationDate = DateTime.Now
      myTransportation.thing= new Thing()
      
      Dim writer As XmlTextWriter = _
      New XmlTextWriter(filename, Encoding.UTF8)
      writer.Formatting = Formatting.Indented
      writer.WriteStartElement("wrapper")
      ser.Serialize(writer, myTransportation)
      writer.WriteEndElement()
      writer.Close()
   End Sub
   Public Sub SerializeObject(filename As String)
      ' Create an XmlSerializer instance.
      Dim ser As XmlSerializer = _
      New XmlSerializer(GetType(Transportation))
      
      Dim myTransportation As Transportation = _
      New Transportation()
      
      myTransportation.Vehicle = "MyCar"
      myTransportation.CreationDate=DateTime.Now
      myTransportation.thing= new Thing()
      Dim writer As XmlTextWriter = _
      new XmlTextWriter(filename, Encoding.UTF8)
      writer.Formatting = Formatting.Indented
      writer.WriteStartElement("wrapper")
      ser.Serialize(writer, myTransportation)
      writer.WriteEndElement()
      writer.Close()
   End Sub
End Class
注解
类 XmlTypeMapping 用于将对象序列化为编码的 SOAP XML。 生成的 XML 符合 万维网联合会 文档“简单对象访问协议 (SOAP) 1.1”的第 5 节。 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) |