导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

DataContractSerializer 类

2013/12/13

使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档。无法继承此类。

System.Object
  System.Runtime.Serialization.XmlObjectSerializer
    System.Runtime.Serialization.DataContractSerializer

Namespace:  System.Runtime.Serialization
程序集:  System.Runtime.Serialization(位于 System.Runtime.Serialization.dll 中)

public sealed class DataContractSerializer : XmlObjectSerializer

DataContractSerializer 类型公开以下成员。

  名称说明
公共方法DataContractSerializer(Type)初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象。
公共方法DataContractSerializer(Type, IEnumerable<Type>)初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象以及可在对象图中呈现的已知类型的集合。
公共方法DataContractSerializer(Type, DataContractSerializerSettings)初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象和设置。
公共方法DataContractSerializer(Type, String, String)使用提供的 XML 根元素和命名空间初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象。
公共方法DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString)使用通过类型为 XmlDictionaryString 的参数指定的 XML 根元素和命名空间初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象。
公共方法DataContractSerializer(Type, String, String, IEnumerable<Type>)初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象。此方法还在两个字符串参数中指定根 XML 元素和命名空间,并指定了可在对象图中呈现的已知类型的列表。
公共方法DataContractSerializer(Type, XmlDictionaryString, XmlDictionaryString, IEnumerable<Type>)初始化 DataContractSerializer 类的新实例,以便序列化或反序列化指定类型的对象。此方法还在两个 XmlDictionaryString 参数中指定根 XML 元素和命名空间,并指定了可在对象图中呈现的已知类型的列表。
返回顶部

  名称说明
公共属性IgnoreExtensionDataObject获取一个值,指定在对类进行序列化或反序列化时是否忽略类扩展提供的数据。
公共属性KnownTypes获取一个类型集合,这些类型可能出现在使用此 DataContractSerializer 实例序列化的对象图中。
公共属性MaxItemsInObjectGraph获取对象图中要序列化或反序列化的最大项数。
公共属性PreserveObjectReferences获取一个值,该值指定是否使用非标准的 XML 构造来保留对象引用数据。
公共属性SerializeReadOnlyTypes获取一个值,该值指定是否序列化只读类型。
返回顶部

  名称说明
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法IsStartObject(XmlDictionaryReader)确定是否将 XmlDictionaryReader 定位在可反序列化的对象上。 (重写 XmlObjectSerializer.IsStartObject(XmlDictionaryReader)。)
公共方法IsStartObject(XmlReader)确定是否将 XmlReader 定位在可反序列化的对象上。 (重写 XmlObjectSerializer.IsStartObject(XmlReader)。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法ReadObject(Stream)使用 Stream 读取 XML 流或文档并返回反序列化的对象。 (从 XmlObjectSerializer 继承。)
公共方法ReadObject(XmlDictionaryReader)使用 XmlDictionaryReader 读取 XML 文档或流并返回反序列化的对象。 (从 XmlObjectSerializer 继承。)
公共方法ReadObject(XmlReader)使用 XmlReader 读取 XML 流并返回反序列化的对象。 (重写 XmlObjectSerializer.ReadObject(XmlReader)。)
公共方法ReadObject(XmlDictionaryReader, Boolean)使用 XmlDictionaryReader 读取 XML 流并返回反序列化的对象,同时还指定在读取其值之前是否进行检查以验证对象名称。 (重写 XmlObjectSerializer.ReadObject(XmlDictionaryReader, Boolean)。)
公共方法ReadObject(XmlReader, Boolean)使用 XmlReader 读取 XML 流并返回反序列化的对象,同时还指定在读取其值之前是否进行检查以验证对象名称。 (重写 XmlObjectSerializer.ReadObject(XmlReader, Boolean)。)
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
公共方法WriteEndObject(XmlDictionaryWriter)使用 XmlDictionaryWriter 写入结束 XML 元素。 (重写 XmlObjectSerializer.WriteEndObject(XmlDictionaryWriter)。)
公共方法WriteEndObject(XmlWriter)使用 XmlWriter 写入结束 XML 元素。 (重写 XmlObjectSerializer.WriteEndObject(XmlWriter)。)
公共方法WriteObject(Stream, Object)使用指定的 Stream 将对象的完整内容(开始、内容和结束)写入 XML 文档或流。 (从 XmlObjectSerializer 继承。)
公共方法WriteObject(XmlDictionaryWriter, Object)使用指定的 XmlDictionaryWriter 将对象的完整内容(开始、内容和结束)写入 XML 文档或流。 (从 XmlObjectSerializer 继承。)
公共方法WriteObject(XmlWriter, Object)使用 XmlWriter 将所有对象数据(开始 XML 元素、内容和结束元素)写入 XML 文档或流。 (重写 XmlObjectSerializer.WriteObject(XmlWriter, Object)。)
公共方法WriteObjectContent(XmlDictionaryWriter, Object)使用 XmlDictionaryWriter 写入 XML 内容。 (重写 XmlObjectSerializer.WriteObjectContent(XmlDictionaryWriter, Object)。)
公共方法WriteObjectContent(XmlWriter, Object)使用 XmlWriter 写入 XML 内容。 (重写 XmlObjectSerializer.WriteObjectContent(XmlWriter, Object)。)
公共方法WriteStartObject(XmlDictionaryWriter, Object)使用 XmlDictionaryWriter 写入开始 XML 元素。 (重写 XmlObjectSerializer.WriteStartObject(XmlDictionaryWriter, Object)。)
公共方法WriteStartObject(XmlWriter, Object)使用 XmlWriter 写入开始 XML 元素。 (重写 XmlObjectSerializer.WriteStartObject(XmlWriter, Object)。)
返回顶部

使用 DataContractSerializer 类将类型实例序列化和反序列化到 XML 流或文档。例如,可以使用包含基本数据(例如名称和地址)的属性创建名为 Person 的类型。然后,可以创建和操作 Person 类的实例,并将其所有属性值写入 XML 文档以供将来检索,或写入 XML 流以供即时传输。最重要的是,DataContractSerializer 用于序列化和反序列化在 Windows Phone 消息中发送的数据。将 DataContractAttribute 特性应用到类,并将 DataMemberAttribute 特性应用到类成员,以指定序列化的特性和字段。

要使用 DataContractSerializer,首先创建适合于写入或读取格式的类和对象的实例,例如,XmlDictionaryWriter 的实例。然后调用 WriteObject 方法来保留数据。要检索数据,请创建适合于读取数据格式(例如,XML 文档的 XmlDictionaryReader)的对象,并调用 ReadObject 方法。

为序列化或反序列化准备类

DataContractSerializerDataContractAttributeDataMemberAttribute 类结合使用。要为序列化准备类,请将 DataContractAttribute 应用到类。对于返回想要序列化的数据的每个类成员,请应用 DataMemberAttribute。您可以序列化字段和属性,只要它们可被公开访问。

例如,您的方案指定具有 ID 属性的 Customer,但您已有使用名为 Person 并具有 Name 属性的类型的现有应用程序。要创建符合协定的类型,请首先将 DataContractAttribute 应用到类。然后,将 DataMemberAttribute 应用于想要序列化的每个字段或属性。

XML 的最终格式不必为文本。DataContractSerializer 将数据作为 XML 信息集写入,这允许您将数据写入由 XmlReaderXmlWriter 识别的任何格式。建议您使用 XmlDictionaryReaderXmlDictionaryWriter 类读取和写入,因为这二者已得到优化,以便与 DataContractSerializer 一起使用。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

显示:
© 2014 Microsoft