DataContractSerializer.ReadObject 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取 XML 流,并返回反序列化的对象。
重载
| ReadObject(XmlReader) | 使用 XmlReader 读取 XML 流,并返回反序列化的对象。 | 
| ReadObject(XmlDictionaryReader, Boolean) | 使用 XmlDictionaryReader 读取 XML 流并返回反序列化的对象,并且还指定在读取其值之前是否进行检查以验证对象名称。 | 
| ReadObject(XmlReader, Boolean) | 使用 XmlReader 读取 XML 流并返回反序列化的对象,并且还指定在读取其值之前是否进行检查以验证对象名称。 | 
| ReadObject(XmlDictionaryReader, Boolean, DataContractResolver) | 读取一个 XML 文档或文档流,并返回反序列化的对象。  此方法包括用于指定是否验证对象名称的参数和用于在运行时映射  | 
ReadObject(XmlReader)
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
使用 XmlReader 读取 XML 流,并返回反序列化的对象。
public:
 override System::Object ^ ReadObject(System::Xml::XmlReader ^ reader);public override object ReadObject (System.Xml.XmlReader reader);public override object? ReadObject (System.Xml.XmlReader reader);override this.ReadObject : System.Xml.XmlReader -> objPublic Overrides Function ReadObject (reader As XmlReader) As Object参数
返回
已反序列化的对象。
适用于
ReadObject(XmlDictionaryReader, Boolean)
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
使用 XmlDictionaryReader 读取 XML 流并返回反序列化的对象,并且还指定在读取其值之前是否进行检查以验证对象名称。
public:
 override System::Object ^ ReadObject(System::Xml::XmlDictionaryReader ^ reader, bool verifyObjectName);public override object ReadObject (System.Xml.XmlDictionaryReader reader, bool verifyObjectName);public override object? ReadObject (System.Xml.XmlDictionaryReader reader, bool verifyObjectName);override this.ReadObject : System.Xml.XmlDictionaryReader * bool -> objPublic Overrides Function ReadObject (reader As XmlDictionaryReader, verifyObjectName As Boolean) As Object参数
- reader
- XmlDictionaryReader
用于读取 XML 流的 XmlDictionaryReader。
- verifyObjectName
- Boolean
要检查对象名称是否与构造函数中提供的根名称值相对应,则为 true;否则为 false。
返回
已反序列化的对象。
例外
如果将 verifyObjectName 参数设置为 true,则元素名称和命名空间与构造函数中设置的值不对应。
示例
下面的示例读取 XML 文档并反序列化一个对象实例。
public static void ReadObject(string fileName)
{
    Console.WriteLine("Deserializing an instance of the object.");
    FileStream fs = new FileStream(fileName,
    FileMode.Open);
    XmlDictionaryReader reader =
        XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
    DataContractSerializer ser = new DataContractSerializer(typeof(Person));
    // Deserialize the data and read it from the instance.
    Person deserializedPerson =
        (Person)ser.ReadObject(reader, true);
    reader.Close();
    fs.Close();
    Console.WriteLine(String.Format("{0} {1}, ID: {2}",
    deserializedPerson.FirstName, deserializedPerson.LastName,
    deserializedPerson.ID));
}
Public Shared Sub ReadObject(ByVal fileName As String) 
    Console.WriteLine("Deserializing an instance of the object.")
    Dim fs As New FileStream(fileName, FileMode.Open)
    Dim reader As XmlDictionaryReader = _
        XmlDictionaryReader.CreateTextReader(fs, New XmlDictionaryReaderQuotas())
    Dim ser As New DataContractSerializer(GetType(Person))
    
    ' Deserialize the data and read it from the instance.
    Dim deserializedPerson As Person = CType(ser.ReadObject(reader, True), Person)
    reader.Close()
    fs.Close()
    Console.WriteLine(String.Format("{0} {1}, ID: {2}", deserializedPerson.FirstName, deserializedPerson.LastName, deserializedPerson.ID))
End Sub
适用于
ReadObject(XmlReader, Boolean)
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
使用 XmlReader 读取 XML 流并返回反序列化的对象,并且还指定在读取其值之前是否进行检查以验证对象名称。
public:
 override System::Object ^ ReadObject(System::Xml::XmlReader ^ reader, bool verifyObjectName);public override object ReadObject (System.Xml.XmlReader reader, bool verifyObjectName);public override object? ReadObject (System.Xml.XmlReader reader, bool verifyObjectName);override this.ReadObject : System.Xml.XmlReader * bool -> objPublic Overrides Function ReadObject (reader As XmlReader, verifyObjectName As Boolean) As Object参数
- verifyObjectName
- Boolean
要检查对象名称是否与构造函数中提供的根名称值相对应,则为 true;否则为 false。
返回
已反序列化的对象。
例外
如果将 verifyObjectName 参数设置为 true,则元素名称和命名空间与构造函数中设置的值不对应。
适用于
ReadObject(XmlDictionaryReader, Boolean, DataContractResolver)
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
- Source:
- DataContractSerializer.cs
读取一个 XML 文档或文档流,并返回反序列化的对象。  此方法包括用于指定是否验证对象名称的参数和用于在运行时映射 xsi:type 声明的解析器。
public:
 System::Object ^ ReadObject(System::Xml::XmlDictionaryReader ^ reader, bool verifyObjectName, System::Runtime::Serialization::DataContractResolver ^ dataContractResolver);public object? ReadObject (System.Xml.XmlDictionaryReader reader, bool verifyObjectName, System.Runtime.Serialization.DataContractResolver? dataContractResolver);public object ReadObject (System.Xml.XmlDictionaryReader reader, bool verifyObjectName, System.Runtime.Serialization.DataContractResolver dataContractResolver);override this.ReadObject : System.Xml.XmlDictionaryReader * bool * System.Runtime.Serialization.DataContractResolver -> objPublic Function ReadObject (reader As XmlDictionaryReader, verifyObjectName As Boolean, dataContractResolver As DataContractResolver) As Object参数
- reader
- XmlDictionaryReader
用于读取内容的 XML 阅读器。
- verifyObjectName
- Boolean
若要验证对象名称,则为 true;否则为 false。
- dataContractResolver
- DataContractResolver
用于将 xsi:type 声明映射到数据协定类型的 DataContractResolver 的实现。
返回
已反序列化的对象。