语言

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)

适用于

另请参阅