WCF技术剖析_学习笔记之三
2013-04-10 16:15
239 查看
数据契约
通过特性来定义,保证服务端和客户端对数据有一致性的理解。
[DataContract]用于枚举、类、结构体。而不用于接口。不可被继承。
3个属性成员:
其中Name和Namespace表示数据契约的名称和命名空间;
IsReference表示在进行序列化的时候是否保持对象现有的引用结构。比如说,一个对象的两个属性同时引用一个对象,那么有两个序列化方式,一种是在序列化后的XML仍然保留这种引用结构,另一种是将两个属性的值序列化成两份独立的具有相同内容的XML。
其中Name和Namespace表示数据契约的名称和命名空间;IsReference表示在进行序列化的时候是否保持对象现有的引用结构。比如说,一个对象的两个属性同时引用一个对象,那么有两个序列化方式,一种是在序列化后的XML仍然保留这种引用结构,另一种是将两个属性的值序列化成两份独立的具有相同内容的XML。
与之类似,数据契约也采用这种显式声明的机制。对于应用了DataContractAttribute特性的类型,只有应用了DataMemberAttribute特性的字段或者属性成员才能成为数据契约的数据成员。[DataMember]特性的定义如下所示。
4个属性所表述的含义。
Name:数据成员的名称,默认为字段或者属性的名称;
Order:相应的数据成员在最终序列化后的XML出现的位置,Order值越小越靠前,默认值为-1;
IsRequired:表明属性成员是否是必须的成员,默认值为false,表明该成员是可以缺省的;
EmitDefaultValue:表明在数据成员的值等于默认值的情况下,是否还需要将其序列化到最终的XML中,默认值为true,表示默认值会参与序列化。
通过特性来定义,保证服务端和客户端对数据有一致性的理解。
[DataContract]用于枚举、类、结构体。而不用于接口。不可被继承。
3个属性成员:
其中Name和Namespace表示数据契约的名称和命名空间;
IsReference表示在进行序列化的时候是否保持对象现有的引用结构。比如说,一个对象的两个属性同时引用一个对象,那么有两个序列化方式,一种是在序列化后的XML仍然保留这种引用结构,另一种是将两个属性的值序列化成两份独立的具有相同内容的XML。
其中Name和Namespace表示数据契约的名称和命名空间;IsReference表示在进行序列化的时候是否保持对象现有的引用结构。比如说,一个对象的两个属性同时引用一个对象,那么有两个序列化方式,一种是在序列化后的XML仍然保留这种引用结构,另一种是将两个属性的值序列化成两份独立的具有相同内容的XML。
与之类似,数据契约也采用这种显式声明的机制。对于应用了DataContractAttribute特性的类型,只有应用了DataMemberAttribute特性的字段或者属性成员才能成为数据契约的数据成员。[DataMember]特性的定义如下所示。
4个属性所表述的含义。
Name:数据成员的名称,默认为字段或者属性的名称;
Order:相应的数据成员在最终序列化后的XML出现的位置,Order值越小越靠前,默认值为-1;
IsRequired:表明属性成员是否是必须的成员,默认值为false,表明该成员是可以缺省的;
EmitDefaultValue:表明在数据成员的值等于默认值的情况下,是否还需要将其序列化到最终的XML中,默认值为true,表示默认值会参与序列化。
相关文章推荐
- WCF技术剖析_学习笔记之一
- 云计算核心技术剖析学习笔记_1
- 云计算核心技术剖析学习笔记_1
- WCF学习笔记之 - 搭建WCF技术知识框架
- WCF学习笔记之 - 搭建WCF技术知识框架
- C#技术内幕学习笔记(值得一读)
- java核心技术学习笔记 20170316
- WCF技术剖析之二:再谈IIS与ASP.NET管道
- WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理
- wcf学习笔记1 hello world程序
- WCF技术剖析之十七:消息(Message)详解(上篇)
- WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]
- 『VC++技术内幕』学习笔记
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- wcf学习笔记2 系统架构
- 技术转型产品学习笔记与理解[BRD]简述——第三天
- C++ Primer 学习笔记_102_特殊工具与技术 --运行时类型识别[续]
- Android开发学习笔记之通过反射技术修改listview的快速滑块图像
- [WCF 学习笔记] 11. 配置文件