前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WCF技术剖析_学习笔记之三

WCF技术剖析_学习笔记之三

作者头像
小端
发布2018-04-16 11:11:33
4380
发布2018-04-16 11:11:33
举报
文章被收录于专栏:java架构师java架构师

数据契约

通过特性来定义,保证服务端和客户端对数据有一致性的理解。

[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,表示默认值会参与序列化。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-04-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档