首页 / 软件开发 / WCF / WCF系列(五) 也谈序列化(下)
WCF系列(五) 也谈序列化(下)2010-12-29 cnblogs chnking1、DataContractSerializer支持的类型....................................21.1.用[DataContract]属性标记的类型....................................21.2..net 原生类型.....................................................21.3.用[Serializable]属性标记的类型...................................21.4.枚举类型.........................................................31.5.呈现为xml的类型...................................................31.6.集合类型.........................................................32、定义需要使用DataContractSerializer序列化的类........................32.1.DataContract属性的参数...........................................32.2.DataMember属性的参数.............................................42.3.[DataContract]属性标识的类型跟XmlSerializer序列化器的类型的不同....42.4.准备待序列化的用 DataContract标识类................................52.5.准备待序列化的用DataContract标识类型的对象.........................73、使用DataContractSerializer类不同的方法序列化用DataContract标识类型的对象....73.1.使用WriteObject(Stream stream, object graph)方法序列化..................83.2.使用WriteObject(XmlDictionaryWriter writer, object graph)方法序列化....103.2.1.CreateTextWriter方法..............103.2.2.CreateMtomWriter方法..............133.2.3.CreateBinaryWriter方法............183.3.DataContractSerializer序列化总结.....19在WCF中,DataContractSerializer是默认的序列化器,不过WCF中还有一个叫NetDataContractSerializer的序列化器,它跟DataContractSerializer一样也是从XmlObjectSerializer类继承。NetDataContractSerializer跟DataContractSerializer一个主要的不同是:NetDataContractSerializer序列化后的xml中包含了.net的类型信息,反序列化时必须要被反序列化为同样类型的对象,这点跟BinaryFormatter和SoapFormatter这两个序列化器类似。DataContractSerializer序列化后的xml中则不包含.net的类型信息,通用性和交互性更好。在实际应用中DataContractSerializer是WCF的默认序列化器,绝大多数情况下都是使用DataContractSerializer,下面我们只对DataContractSerializer做详细介绍。