XmlSerializerNamespaces 类

定义

包含用于在 XML 文档实例中生成限定名称的 XML 命名空间和前缀 XmlSerializer

public ref class XmlSerializerNamespaces
public class XmlSerializerNamespaces
type XmlSerializerNamespaces = class
Public Class XmlSerializerNamespaces
继承
XmlSerializerNamespaces

示例

以下示例创建一个对象,并向该对象添加两个 XmlSerializerNamespaces 前缀和命名空间对。 然后,该示例将XmlSerializerNamespacesSerialize对象序列化Books为 XML 文档的方法。 XmlSerializerNamespaces使用对象时,该方法Serialize使用两个命名空间之一限定每个 XML 元素和属性。

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("XmlNamespaces.xml");
   }

   public void SerializeObject(string filename)
   {
      XmlSerializer s = new XmlSerializer(typeof(Books));
      // Writing a file requires a TextWriter.
      TextWriter t = new StreamWriter(filename);

      /* Create an XmlSerializerNamespaces object and add two
      prefix-namespace pairs. */
      XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
      ns.Add("books", "http://www.cpandl.com");
      ns.Add("money", "http://www.cohowinery.com");

      // Create a Book instance.
      Book b = new Book();
      b.TITLE = "A Book Title";
      Price p = new Price();
      p.price = (decimal) 9.95;
      p.currency = "US Dollar";
      b.PRICE = p;
      Books bks = new Books();
      bks.Book = b;
      s.Serialize(t,bks,ns);
      t.Close();
   }
}

public class Books
{
   [XmlElement(Namespace = "http://www.cohowinery.com")]
   public Book Book;
}

[XmlType(Namespace ="http://www.cpandl.com")]
public class Book
{
   [XmlElement(Namespace = "http://www.cpandl.com")]
   public string TITLE;
   [XmlElement(Namespace ="http://www.cohowinery.com")]
   public Price PRICE;
}

public class Price
{
   [XmlAttribute(Namespace = "http://www.cpandl.com")]
   public string currency;
   [XmlElement(Namespace = "http://www.cohowinery.com")]
   public decimal price;
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization


Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("XmlNamespaces.xml")
    End Sub    
    
    Public Sub SerializeObject(ByVal filename As String)
        Dim s As New XmlSerializer(GetType(Books))
        ' Writing a file requires a TextWriter.
        Dim t As New StreamWriter(filename)
        
        ' Create an XmlSerializerNamespaces object and add two
        ' prefix-namespace pairs. 
        Dim ns As New XmlSerializerNamespaces()
        ns.Add("books", "http://www.cpandl.com")
        ns.Add("money", "http://www.cohowinery.com")
        
        ' Create a Book instance.
        Dim b As New Book()
        b.TITLE = "A Book Title"
        Dim p As New Price()
        p.price = CDec(9.95)
        p.currency = "US Dollar"
        b.PRICE = p
        Dim bks As New Books()
        bks.Book = b
        s.Serialize(t, bks, ns)
        t.Close()
    End Sub
End Class

Public Class Books
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public Book As Book
End Class

<XmlType(Namespace := "http://www.cpandl.com")> _
Public Class Book
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public TITLE As String

    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public PRICE As Price
End Class

Public Class Price
    <XmlAttribute(Namespace := "http://www.cpandl.com")> _
    Public currency As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public price As Decimal
End Class

注解

包含 XmlSerializerNamespaces XML 命名空间的集合,每个命名空间都有关联的前缀。 该 XmlSerializer 类的 XmlSerializerNamespaces 实例用于在 XML 文档中创建限定名称。

XML XmlSerializerNamespaces 命名空间中包含的 XML 命名空间必须符合 XML 中名为命名空间的 W3C 规范。

XML 命名空间提供一种方法来限定 XML 文档中的 XML 元素和属性的名称。 限定名称由前缀和本地名称组成,用冒号分隔。 前缀仅用作占位符;它映射到指定命名空间的 URI。 通用管理的 URI 命名空间和本地名称的组合将生成一个保证具有通用唯一性的名称。

在 XML 文档中创建限定名称:

  1. 创建实例 XmlSerializerNamespaces

  2. Add 要实例的每个前缀和命名空间对。

  3. 将适当的.NET属性应用于XmlSerializer序列化为 XML 文档的每个属性或类。 可用属性包括:

  1. Namespace 每个属性的属性设置为对象中的 XmlSerializerNamespaces 命名空间值之一。

  2. 将传递给 XmlSerializerNamespacesSerialize . 的方法 XmlSerializer

注释

不支持创建空命名空间和前缀对。 也就是说,不能使用以下代码创建对:

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
Dim ns As XmlSerializerNamespaces ns = New XmlSerializerNamespaces()
ns.Add("", "")

构造函数

名称 说明
XmlSerializerNamespaces()

初始化 XmlSerializerNamespaces 类的新实例。

XmlSerializerNamespaces(XmlQualifiedName[])

初始化 XmlSerializerNamespaces 类的新实例。

XmlSerializerNamespaces(XmlSerializerNamespaces)

使用包含前缀和命名空间对集合的指定实例初始化类的新 XmlSerializerNamespaces 实例 XmlSerializerNamespaces

属性

名称 说明
Count

获取集合中的前缀和命名空间对的数目。

方法

名称 说明
Add(String, String)

向对象添加前缀和命名空间对 XmlSerializerNamespaces

Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ToArray()

获取对象中 XmlSerializerNamespaces 前缀和命名空间对的数组。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅