第四篇:用数据契约传递自定义数据对象

之前的演示中,我们一直都是在用string类型做参数和返回值,实际项目中肯定会传递自定义的数据类型。与WebService不同,WCF想传递自定义数据,必须要将其定义为数据契约。看一个例子:

  1. using System;
  2. using System.Runtime.Serialization;  //注意加上这个引用,并引用相应的dll
  3. namespace Server
  4. {
  5. //用DataContract来标记本类是数据契约类
  6. [DataContract]
  7. public class UserEntity
  8. {
  9. //用DataMember来标识数据成员,没有此标识的属性不会作为数据契约的一部分
  10. [DataMember]
  11. public string Name { get; set; }
  12. [DataMember]
  13. public int Age { get; set; }
  14. }
  15. }

这个契约需要在客户端和服务端都存在,然后它就可以作为参数或返回值,在双方互相传递了,具体例子就省略了。

这里面有一点需要注意,数据契约与服务契约有一点小小的区别,数据契约要求在客户端和服务端必须保持完全一致的类名与命名空间,否则就无法传递数据,这与服务契约是不同的,服务契约放到客户端时允许换个命名空间。

组内有同事遇到过类似的问题,直接把数据契约类copy了一份到客户端之后改了命名空间,然后就一直取不到数据。 这里也引出另一个话题,推荐把各种契约(不含实现类)单独封装成一个dll,双方均引用它,结构上清晰,也避免出错。

今天这篇有点短,下回聊一聊用IIS做HOST。

本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/800257,如需转载请自行联系原作者

WCF简单教程(4) 数据契约相关推荐

  1. wcf简单教程(10) ajax调用,wcf简单教程(10) ajax调用

    wcf简单教程(10) ajax调用 [2021-02-11 16:23:59]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...

  2. WCF简单教程(8) 安全 - Windows认证

    第八篇:WCF安全 WCF提供了非常丰富的加密机制与审核机制,以保证对外提供的服务安全可靠.本文是简单教程,所以只挑其中的一小部分来聊聊. 先来看看最简单的Windows认证. 所谓Windows认证 ...

  3. WCF简单教程(5) 用IIS做Host

    第五篇:用IIS做Host 之前几篇的Demo中,我们一直在用控制台程序做Server,今天换IIS来做Host,在Web Application中添加WCF的服务. 其实在Web Applicati ...

  4. WCF简单教程(6) 单向与双向通讯

    第六篇:单向与双向通讯 项目开发中我们时常会遇到需要异步调用的问题,有时忽略服务端的返回值,有时希望服务端在需要的时候回调,今天就来看看在WCF中如何实现. 先看不需要服务端返回值的单向调用,老规矩, ...

  5. WCF 之 数据契约

    前面几篇讲的都只能传递string类型的简单参数,数据契约就是用来解决如传递一个带有多个属性的Class类型的对象的. WCF推荐使用数据契约的方式实现数据的序列化.这部分的内容很好理解但是很重要,先 ...

  6. WCF契约的简单介绍(服务契约 数据契约 消息契约)

    本篇博文只是简单说下WCF中的契约的种类.作用以及一些简单的代码示例.在WCF中契约分为服务契约.数据契约和消息契约.下面对这几种契约进行简单的介绍. 服务契约 服务契约描述了暴露给外部的类型(接口或 ...

  7. WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)

    [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]在.NET中,所有的集合都实现了IEnumerable接口,比如Arra ...

  8. 重温WCF之数据契约和序列化(四)

    一.数据契约 1.使用数据协定可以灵活控制哪些成员应该被客户端识别. [DataContract]public class Employee{[DataMember]public string Nam ...

  9. WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)

    在.NET Framework 2.0中,泛型第一次被引入.我们可以定义泛型接口.泛型类型.泛型委托和泛型方法.序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念.而集合代表一组对象的组合,集 ...

最新文章

  1. 2020技术趋势报告-中文版
  2. 页面那些位置是投放广告的最佳位置
  3. vue笔记(三)生命周期、组件(嵌套)、数据传递
  4. USB/UART 串口转LoRa无线传输调试工具 评估套件
  5. 3千字带你搞懂XXL-JOB任务调度平台
  6. 修改文件 华为交换机_华为交换机系统文件管理配置命令大全(二)
  7. Windows Forms Programming In C# 读书笔记 - 第三章 Dialogs (2)
  8. access ps4战地1要ea_EA游戏订阅服务将于2019年7月登陆PS4平台,抢先游玩枪车球新作...
  9. 未来时速——第一章 用事实的力量管理企业
  10. iOS 视频播放器开发(一)
  11. 全年盘点:2017最酷的10家大数据初创公司
  12. 国产硬件防火墙横向对比
  13. 生成随机数字字母组合参数
  14. 安卓开发:医院预约挂号app
  15. Java—将数据生成pdf表格
  16. 智慧小区智能化视频监控系统建设方案
  17. 基于单目视觉的同时定位与地图构建方法综述
  18. 莱昂纳多或出演乔布斯传记电影
  19. python使用dohq-tfs操作TFS(Team Foundation Server)的Work Item
  20. 阿里分布式开放消息服务(ONS)原理与实践——笔记整理

热门文章

  1. SecondaryNameNode的Inconsistent checkpoint fields异常
  2. Webdriver for python 入门示例2(浏览器句柄操作)
  3. Gcc 完全参考手册,参数说明,操作指南-Gcc Complete referene
  4. SDOI2019R1游记
  5. pandas.DataFrame.set_index
  6. iOS无限轮播图片的两种方式
  7. spring的注入方式
  8. CSS原理与CSS经验分享
  9. Mysql查看编码方式专题
  10. Ehcache缓存配置和基本使用