数据契约(DataContract)

服务契约定义了远程访问对象和可供调用的方法,数据契约则是服务端和客户端之间要传送的自定义数据类型。
一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送。如下:

     [DataContract]public class UserInfo{//….}

只有声明为DataContract的类型的对象可以被传送,且只有成员属性会被传递,成员方法不会被传递。WCF对声明为DataContract的类型提供更加细节的控制,可以把一个成员排除在序列化范围以外,也就是说,客户端程序不会获得被排除在外的成员的任何信息,包括定义和数据。默认情况下,所有的成员属性都被排除在外,因此需要把每一个要传送的成员声明为DataMember,如下所示。

[DataContract]public class UserInfo{[DataMember]public string UserName{get;set;}[DataMember]public int Age{get;set;}[DataMember]public string Location{get;set;}public string Zodiac{get;set;}}

上面这段代码把UserInfo类声明为DataContract,将UserName、Age、Location这3个属性声明为DataMember(数据成员)。Zodiac成员没有被声明为DataMember,因此在交换数据时,不会传输Zodiac的任何信息。

DataContract也支持Name/Namespace属性,如同ServiceContract,Name和Namespace可以自定义名称和命名空间,客户端将使用自定义的名称和命名空间对DataContract类型进行访问。

文章详细来源:http://www.cnblogs.com/Gavinzhao/archive/2010/06/01/1748736.html

json知识中的数据契约相关推荐

  1. JMETER从JSON响应中提取数据

    如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...

  2. JS-JSON-获取JSON对象中的数据展示到表格里

    JS-JSON-获取JSON对象中的数据展示到表格里 1.要求 点击按钮,将学生信息展示到表格里,并显示总记录条数. 2.实现思路 创建JSON对象 先创建一个JSON对象data,有总人数total ...

  3. 将数据写入json文件,并且读取json文件中的数据

    目录 一.将数据生成json文件 二.读取json文件中的数据 三.方法测试 四.其他附件 1.User实体类 2.import 一.将数据生成json文件 方法 /*** 生成.json格式文件*/ ...

  4. Vue中怎样获取json文件中的数据

    场景 访问百度音乐API需要传递音乐类型参数,而这些参数是存在musictype.json中, 现在在组件listcate.vue需要获取json数据. json文件内容: 文件位置: 实现 musi ...

  5. 安卓开发替换json字符串中的数据_22个JavaScript开发技巧合集

    作者:kancloud 转发链接:https://www.kancloud.cn/dennis/tgjavascript/241855 开发技巧 1.使用var声明变量 如果给一个没有声明的变量赋值, ...

  6. 5.1 node实现简单注册功能(往json文件中写入数据)

    5.1.1 描述: /* 描述:如果persons中没有对应的用户,则把user写入到persons.json中,提示注册成功并且不能修改原来的数据结构如果有对应的用户名,则提示用户名已经被占用 */ ...

  7. java从json数组中提取数据,从JSON数组中提取数据

    我知道它是一个数组,但是我对JSON完全陌生,需要帮助理解它的结构,这是我提取数据的尝试: String JSonString = readURL("//my URL is here&quo ...

  8. 李炎恢 ComboGrid(数据表格下拉框):读取Json文件中的数据

    1.新建JsData文件夹中添加content.json文件.内容如下: [  {   "id" : 1,   "user" : "蜡笔小新" ...

  9. 使用 JsonNode 获取 json对象 中的数据

    我们在远程调用其他接口的时候,有时候不清楚返回值,这个时候可以 使用JsonNode来接收和获取里面的值. 例如:一个接口的Response body是这样的 {"code": & ...

最新文章

  1. 上传图片并生成缩略图
  2. android imagebutton 按下效果,Android 点击ImageButton时有“按下”的效果的实现
  3. UOJ310 黎明前的巧克力 FWT
  4. html div float center,跨浏览器实现float:center
  5. Linux第三方软件仓库
  6. 2-1为什么选择Pytorch
  7. RS-232C接口定义(DB9)
  8. vue常用的事件修饰符
  9. Redis:字符串MSET、MSETNX、MGET命令介绍
  10. 论坛介绍 | COSCon'22 开源操作系统(O)
  11. 计算机仿真在线投稿系统,常见问题解决-计算机仿真官方投稿系统.doc
  12. python无法打开微信登录_如何让你的微信登录界面地球转起来(利用python实现)...
  13. 纹波(ripple)--学习笔记
  14. 互联网评论(一):由“戴尔用博客与中国用户沟通”想起
  15. PTA 7-47 打印选课学生名单
  16. 第九周项目三小星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星
  17. 装上后这 10个扩展后,VSCode 猛虎添翼,无敌了
  18. scala集合算子大全及分类汇总——倾心整理
  19. 分数拆分(简单数学)
  20. 两个不规则四边形IOU计算方法

热门文章

  1. VS2012编译调试WDM驱动(KdPrint无调试信息 debugview win7无调试信息)
  2. (C++)从本机获取WMI数据.
  3. 深入解析Linux中的fork函数
  4. UNIX中后台进程与守护进程
  5. JavaScript document write String content writes nothing o
  6. 数据结构 - 有两个链表,第一个升序,第二个降序,合并为一个升序链表(C++)
  7. 大工18秋c c 语言程序设计,大工19秋《可编程控制器》在线作业3【满分答案】
  8. mysql bigint 运算_mysql中int、bigint、smallint 和 tinyint的区别详细介绍
  9. android数据库降级_android——数据库版本升/降级问题
  10. python第一个解释器是哪一年_Python简介以及解释器介绍