XmlSerializerNamespaces 类

定义

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

C#
public class XmlSerializerNamespaces
继承
XmlSerializerNamespaces

示例

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

C#
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;
}

注解

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

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

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

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

  1. XmlSerializerNamespaces创建实例。

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

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

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

  2. XmlSerializerNamespaces 传递到 SerializeXmlSerializer 方法。

备注

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

C#
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)

适用于

产品 版本
.NET Core 1.0, Core 1.1, 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
UWP 10.0

另请参阅