DataContractSerializer 类
使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档。 无法继承此类。
命名空间: System.Runtime.Serialization
程序集: System.Runtime.Serialization(在 System.Runtime.Serialization.dll 中)
备注
使用 DataContractSerializer 类可以将类型实例序列化和反序列化为 XML 流或文档。 通过将 DataContractAttribute 特性应用于类,而将DataMemberAttribute 特性应用于类成员,可以指定要序列化的属性和字段。
从字面意思来理解就是:数据契约序列化,本文主要是讲解用DataContractSerializer 序列化和反序列化,关于它在WCF中的应用大家可以参考《WCF全面解析上册 蒋金楠著》第五章 序列化,里面有专门的介绍。
DataContractAttribute与DataMenmberAttribute
1 #region 程序集 System.Runtime.Serialization.dll, v4.0.0.0 2 // C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Runtime.Serialization.dll 3 #endregion 4 5 using System; 6 7 namespace System.Runtime.Serialization 8 { 9 // 摘要: 10 // 指定该类型要定义或实现一个数据协定,并可由序列化程序(如 System.Runtime.Serialization.DataContractSerializer)进行序列化。 11 // 若要使其类型可序列化,类型作者必须为其类型定义数据协定。 12 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum, Inherited = false, AllowMultiple = false)] 13 public sealed class DataContractAttribute : Attribute 14 { 15 // 摘要: 16 // 初始化 System.Runtime.Serialization.DataContractAttribute 类的新实例。 17 public DataContractAttribute(); 18 19 // 摘要: 20 // 获取或设置一个值,该值指示是否保留对象引用数据。 21 // 22 // 返回结果: 23 // 如果使用标准 XML 保留对象引用数据,则为 true;否则为 false。 默认值为 false。 24 public bool IsReference { get; set; } 25 // 26 // 摘要: 27 // 获取或设置类型的数据协定的名称。 28 // 29 // 返回结果: 30 // 数据协定的本地名称。 默认值是应用了该属性的类的名称。 31 public string Name { get; set; } 32 // 33 // 摘要: 34 // 获取或设置类型的数据协定的命名空间。 35 // 36 // 返回结果: 37 // 协定的命名空间。 38 public string Namespace { get; set; } 39 } 40 }