IXmlSerializable.ReadXml(XmlReader) 方法

定义

从其 XML 表示形式生成对象。

public:
 void ReadXml(System::Xml::XmlReader ^ reader);
public void ReadXml(System.Xml.XmlReader reader);
abstract member ReadXml : System.Xml.XmlReader -> unit
Public Sub ReadXml (reader As XmlReader)

参数

reader
XmlReader

XmlReader从中反序列化对象的流。

示例

下面的示例演示了方法的 ReadXml 实现。

public void ReadXml (XmlReader reader)
{
    personName = reader.ReadString();
}

下面的示例演示如何使用该 XmlSerializer 类反序列化此对象。

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

public class Reader {

  public static void Main() {
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    FileStream file = new FileStream("test.xml", FileMode.Open);
    Person aPerson = (Person) serializer.Deserialize(file);
    Console.WriteLine(aPerson);
  }
}

注解

该方法 ReadXml 必须使用该方法写入 WriteXml 的信息重新构造对象。

调用此方法时,读取器将定位在包装类型信息的起始标记上。 也就是说,直接在指示序列化对象的开头的开始标记上。 此方法返回时,必须从头到尾读取整个元素,包括其所有内容。 WriteXml与该方法不同,框架不会自动处理包装元素。 实现必须执行此操作。 未能观察这些定位规则可能会导致代码生成意外的运行时异常或损坏数据。

实现此方法时,应考虑恶意用户可能提供格式正确的但无效的 XML 表示形式,以便禁用或更改应用程序的行为。

适用于