SoapTypeAttribute.Namespace 属性   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置 XML 类型的命名空间。
public:
 property System::String ^ Namespace { System::String ^ get(); void set(System::String ^ value); };public string? Namespace { get; set; }public string Namespace { get; set; }member this.Namespace : string with get, setPublic Property Namespace As String属性值
XML 类型的命名空间。 默认值为空字符串("")。
示例
以下示例序列化名为 的 Group类。 将 SoapTypeAttribute 应用于设置为“SoapGroupType”的 类 TypeName 。 
              SoapTypeAttribute还会重写 ,将 更改为TypeName“Team”。 这两个版本都已序列化,生成两个文件:SoapType.xml 和 SoapType2.xml。
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
// The SoapType is overridden when the
// SerializeOverride  method is called.
[SoapType("SoapGroupType", "http://www.cohowinery.com")]
public class Group
{
   public string GroupName;
   public Employee[] Employees;
}
[SoapType("EmployeeType")]
public class Employee
{
   public string Name;
}
public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeOriginal("SoapType.xml");
      test.SerializeOverride("SoapType2.xml");
      test.DeserializeObject("SoapType2.xml");
   }
   public void SerializeOriginal(string filename)
   {
      // Create an instance of the XmlSerializer class that
      // can be used for serializing as a SOAP message.
      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 XML text writer.
      XmlTextWriter xmlWriter = new XmlTextWriter(writer);
      xmlWriter.Formatting = Formatting.Indented;
      xmlWriter.Indentation = 2;
      // Create an instance of the class that will be serialized.
      Group myGroup = new Group();
      // Set the object properties.
      myGroup.GroupName = ".NET";
      Employee e1 = new Employee();
      e1.Name = "Pat";
      myGroup.Employees=new Employee[]{e1};
      // Write the root element.
      xmlWriter.WriteStartElement("root");
      // Serialize the class.
      mySerializer.Serialize(xmlWriter, myGroup);
      // Close the root tag.
      xmlWriter.WriteEndElement();
      // Close the XmlWriter.
      xmlWriter.Close();
      // Close the TextWriter.
      writer.Close();
   }
   public void SerializeOverride(string filename)
   {
      // Create an instance of the XmlSerializer class that
      // uses a SoapAttributeOverrides object.
      XmlSerializer mySerializer =  CreateOverrideSerializer();
      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);
      // Create an XML text writer.
      XmlTextWriter xmlWriter = new XmlTextWriter(writer);
      xmlWriter.Formatting = Formatting.Indented;
      xmlWriter.Indentation = 2;
      // Create an instance of the class that will be serialized.
      Group myGroup = new Group();
      // Set the object properties.
      myGroup.GroupName = ".NET";
      Employee e1 = new Employee();
      e1.Name = "Pat";
      myGroup.Employees=new Employee[]{e1};
      // Write the root element.
      xmlWriter.WriteStartElement("root");
      // Serialize the class.
      mySerializer.Serialize(xmlWriter, myGroup);
      // Close the root tag.
      xmlWriter.WriteEndElement();
      // Close the XmlWriter.
      xmlWriter.Close();
      // Close the TextWriter.
      writer.Close();
   }
   private XmlSerializer CreateOverrideSerializer()
   {
      // Create and return an XmlSerializer instance used to
      // override and create SOAP messages.
      SoapAttributeOverrides mySoapAttributeOverrides =
          new SoapAttributeOverrides();
      SoapAttributes soapAtts = new SoapAttributes();
      // Override the SoapTypeAttribute.
      SoapTypeAttribute soapType = new SoapTypeAttribute();
      soapType.TypeName = "Team";
      soapType.IncludeInSchema = false;
      soapType.Namespace = "http://www.microsoft.com";
      soapAtts.SoapType = soapType;
      mySoapAttributeOverrides.Add(typeof(Group),soapAtts);
      // Create an XmlTypeMapping that is used to create an instance
      // of the XmlSerializer. Then return the XmlSerializer object.
      XmlTypeMapping myMapping = (new SoapReflectionImporter(
      mySoapAttributeOverrides)).ImportTypeMapping(typeof(Group));
      XmlSerializer ser = new XmlSerializer(myMapping);
      return ser;
   }
   public void DeserializeObject(string filename)
   {
      // Create an instance of the XmlSerializer class.
      XmlSerializer mySerializer =  CreateOverrideSerializer();
      // Reading the file requires a TextReader.
      TextReader reader = new StreamReader(filename);
      // Create an XML text reader.
      XmlTextReader xmlReader = new XmlTextReader(reader);
      xmlReader.ReadStartElement();
      // Deserialize and cast the object.
      Group myGroup = (Group) mySerializer.Deserialize(xmlReader);
      xmlReader.ReadEndElement();
      Console.WriteLine("The GroupName is " + myGroup.GroupName);
      Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " +
        "files for the generated XML.");
      // Close the readers.
      xmlReader.Close();
      reader.Close();
   }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
' The SoapType is overridden when the
' SerializeOverride  method is called.
<SoapType("SoapGroupType", "http://www.cohowinery.com")> _
Public class Group
   Public GroupName As String
   Public Employees() As Employee
End Class
<SoapType("EmployeeType")> _
Public Class Employee
   Public Name As String
End Class
   
Public class Run
   Public Shared Sub Main()
      Dim test As Run = New Run()
      test.SerializeOriginal("SoapType.xml")
      test.SerializeOverride("SoapType2.xml")
      test.DeserializeObject("SoapType2.xml")
   End Sub
   Public Sub SerializeOriginal(filename As String )
      ' Create an instance of the XmlSerializer class that
      ' can be used for serializing as a SOAP message.
     Dim mapp  As XmlTypeMapping = _
      (New SoapReflectionImporter()).ImportTypeMapping(GetType(Group))
      Dim mySerializer As XmlSerializer =  _
      New XmlSerializer(mapp)
      
      ' Writing the file requires a TextWriter.
      Dim writer As TextWriter = New StreamWriter(filename)
      ' Create an XML text writer.
      Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer)
      xmlWriter.Formatting = Formatting.Indented
      xmlWriter.Indentation = 2
      ' Create an instance of the class that will be serialized.
      Dim myGroup As Group = New Group()
      ' Set the object properties.
      myGroup.GroupName = ".NET"
      Dim e1 As Employee = New Employee()
      e1.Name = "Pat"
      myGroup.Employees=New Employee(){e1}
      ' Write the root element.
      xmlWriter.WriteStartElement("root")
      ' Serialize the class.
      mySerializer.Serialize(xmlWriter, myGroup)
      ' Close the root tag.
      xmlWriter.WriteEndElement()
      ' Close the XmlWriter.
      xmlWriter.Close()
      ' Close the TextWriter.
      writer.Close()
   End Sub
   Public Sub SerializeOverride(filename As string )
   
      ' Create an instance of the XmlSerializer class that
      ' uses a SoapAttributeOverrides object.
      Dim mySerializer As XmlSerializer =  CreateOverrideSerializer()
      ' Writing the file requires a TextWriter.
      Dim writer As TextWriter = New StreamWriter(filename)
      ' Create an XML text writer.
      Dim xmlWriter As XmlTextWriter = New XmlTextWriter(writer)
      xmlWriter.Formatting = Formatting.Indented
      xmlWriter.Indentation = 2
      ' Create an instance of the class that will be serialized.
      Dim myGroup As Group = New Group()
      ' Set the object properties.
      myGroup.GroupName = ".NET"
      Dim e1 As Employee = New Employee()
      e1.Name = "Pat"
      myGroup.Employees = New Employee(){e1}
      ' Write the root element.
      xmlWriter.WriteStartElement("root")
      ' Serialize the class.
      mySerializer.Serialize(xmlWriter, myGroup)
      ' Close the root tag.
      xmlWriter.WriteEndElement()
      ' Close the XmlWriter.
      xmlWriter.Close()
      ' Close the TextWriter.
      writer.Close()
   End Sub
   Private Function CreateOverrideSerializer() As XmlSerializer 
      ' Create and return an XmlSerializer instance used to
      ' override and create SOAP messages.
      Dim mySoapAttributeOverrides As SoapAttributeOverrides = _
        New SoapAttributeOverrides()
      Dim soapAtts As SoapAttributes = New SoapAttributes()
      ' Override the SoapTypeAttribute.
      Dim soapType As SoapTypeAttribute = New SoapTypeAttribute()
      soapType.TypeName = "Team"
      soapType.IncludeInSchema = false
      soapType.Namespace = "http://www.microsoft.com"
      soapAtts.SoapType = soapType
      
      mySoapAttributeOverrides.Add(GetType(Group),soapAtts)
      ' Create an XmlTypeMapping that is used to create an instance 
      ' of the XmlSerializer. Then return the XmlSerializer object.
      Dim myMapping As XmlTypeMapping = (New SoapReflectionImporter( _
      mySoapAttributeOverrides)).ImportTypeMapping(GetType(Group))
    
      Dim  ser As XmlSerializer = New XmlSerializer(myMapping)
      
      return ser
   End Function
   Public Sub DeserializeObject(filename As String)
      ' Create an instance of the XmlSerializer class.
      Dim mySerializer As XmlSerializer =  CreateOverrideSerializer()
      ' Reading the file requires a TextReader.
      Dim reader As TextReader = New StreamReader(filename)
      ' Create an XML text reader.
      Dim xmlReader As XmlTextReader = New XmlTextReader(reader)
      xmlReader.ReadStartElement()
      ' Deserialize and cast the object.
      Dim myGroup As Group = CType(mySerializer.Deserialize(xmlReader), Group)
      xmlReader.ReadEndElement()
      Console.WriteLine("The GroupName is " + myGroup.GroupName)
      Console.WriteLine("Look at the SoapType.xml and SoapType2.xml " + _
        "files for the generated XML.")
      ' Close the readers.
      xmlReader.Close()
      reader.Close()
   End Sub
End Class
注解
如果为多个类型 (设置一个 Namespace 值,也就是说,如果将 属性应用于具有不同 Namespace 值) 的多个类, 则 XML 架构定义工具 (Xsd.exe) 将为每个类型生成单独的架构文件 (.xsd) 。 这是因为为每个类型设置不同的命名空间会使每个类型呈现不同于其他类型,因此需要将每个类型写成独立的实体。