推荐答案
-- -------------------- ---- ------- ----- ------- ----- ---------- ----- ----------------------------- -------------- ------ ----- ------ - ------------ ------ ------ ---- - ---- ---- - ------------ ------ --- --- - ---- ---- - - ------ ----- ------- - ------ ------ ---- ------ - ------ ------ - --- ------ - ---- - ----- ----- --- - -- -- -- --------- --- ------ -- - ------ ---------------------- ---------- - --- --------------------------------------- ----- ----------- ------ - --- ------------------------ ----------------- - ------------------------------ -------- - -- ----------- --- ------ ---- --- ------ ------ ------------------- ----- ----------- ------ - --- ------------------------ --------------- - ------------------ - -------------------------------------- - ------------------------- -------------------------- ---- --------------------------- - -
本题详细解读
DataContractSerializer 概述
DataContractSerializer
是 .NET 中用于序列化和反序列化对象的类。它主要用于将对象转换为 XML 格式,以便存储或传输,并且可以从 XML 格式中重新构造对象。
使用步骤
定义数据契约:使用
[DataContract]
和[DataMember]
属性标记类和成员。[DataContract]
用于标记类,[DataMember]
用于标记需要序列化的属性或字段。创建对象:实例化一个需要序列化的对象。
序列化对象:
- 创建
DataContractSerializer
实例,指定要序列化的对象类型。 - 使用
WriteObject
方法将对象序列化到流中(如文件流、内存流等)。
- 创建
反序列化对象:
- 使用
ReadObject
方法从流中读取 XML 数据并反序列化为对象。
- 使用
代码解析
- Person 类:这是一个简单的类,包含两个属性
Name
和Age
,并使用[DataContract]
和[DataMember]
标记。 - 序列化:将
Person
对象序列化为 XML 并保存到文件person.xml
中。 - 反序列化:从
person.xml
文件中读取 XML 数据并反序列化为Person
对象。 - 输出:打印反序列化后的对象属性,验证序列化和反序列化的正确性。
注意事项
DataContractSerializer
默认使用 XML 格式,但也可以通过配置使用其他格式。- 只有标记了
[DataMember]
的成员才会被序列化。 - 序列化和反序列化的类型必须一致,否则会抛出异常。