服务可以使用WebHttpBinding以及WebGet或者WebInvoke属性来暴露。这些属性每一个都确定HTTP动作、消息格式以及需要暴露给一个操作的消息体形式。我们将检查这些属性的每一个并给出使用每个的原因。

WebGet

WebGet属性使用GET动词暴露操作。GET相对于其他HTTP动作有重要的优势。首先,通过在一个浏览器地址栏中输入服务URI可以直接地访问终结点。参数可以作为查询字符串或者编码字符串在URI中发送。其次,客户端以及其他下游系统比如代理服务器可以很容易地基于缓存策略来为服务缓存资源。由于缓存能力,WebGet属性应该只用来做收集用。

列表13.6 显示了使用WebGet和WebInvoke属性定义的一个服务。WebGet属性用来收集客户信息。WebInvoke属性被用于那些修改数据的添加或者删除客户信息的操作。最后,在WebGet和WebInvoke属性上定义UriTemplate属性来使用URI定义一个自定义资源。

列表13.6 CustomerService

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Web;namespace EssentialWCF
{[ServiceContract]public class CustomerService{[OperationContract][WebGet(UriTemplate = "/customer/{id}")]public Customer GetCustomer(int id){Customer customer = null;//Get customer from databasereturn customer;}[OperationContract][WebInvoke(Method="PUT", UriTemplate="/customer/{id}")]public void PutCustomer(int id, Customer customer){//Put customer in database}[OperationContract][WebInvoke(Method="Delete", UriTemplate="/customer/{id}")]public void DeleteCustomer(int id){//Put customer in database}}
}

转载于:https://www.cnblogs.com/danielWise/archive/2011/06/07/2073999.html

WCF 第十三章 可编程站点 使用WebGet和WebInvoke相关推荐

  1. WCF 第十三章 可编程站点 所有都与URI相关

    普及的GET 方法 表13.1中所有URIs的一件共性的事情是它们都是用HTTP协议来访问资源.HTTP协议被认为是站点协议.HTTP协议的初衷是交换HTML页,但是它已经被用来访问所有类型的资源,包 ...

  2. WCF 第十三章 可编程站点 使用AJAX和JSON进行网页编程

    到目前为止我们已经看了如何使用WebHttpBinding绑定和WebHttpBehavior终结点行为来寄宿服务.这允许我们使用POX来暴露服务.很多网站开发人员想放弃使用XML而使用JSON,一个 ...

  3. 20190825 On Java8 第十三章 函数式编程

    第十三章 函数式编程 函数式编程语言操纵代码片段就像操作数据一样容易. 虽然 Java 不是函数式语言,但 Java 8 Lambda 表达式和方法引用 (Method References) 允许你 ...

  4. 史上最简单的spark教程第十三章-SparkSQL编程Java案例实践(终章)

    Spark-SQL的Java实践案例(五) 本章核心:JDBC 连接外部数据库,sparkSQL优化,故障监测 史上最简单的spark教程 所有代码示例地址:https://github.com/My ...

  5. WCF 第六章 序列化和编码之DataContractJsonSerializer

    DataContractJsonSerializer支持使用以JavaScript 对象标记作为序列化格式并添加到.NET 3.5 Framework 中.如果从一个使用JavaScript 的网络应 ...

  6. [转]Windows Shell 编程 第十三章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7988004】...

    第十三章 Windows脚本环境 现在的许多开发人员以前都是在MS-DOS环境下编程的.几乎所有人都接触过批处理文件--一种基于文本命令的文件.这种文件使你能够在一个可执行命令中组合多个指令.批处理文 ...

  7. 《Java编程思想》读书笔记 第十三章 字符串

    <Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...

  8. 第十三章 Perl的面向对象编程

    第十三章 Perl的面向对象编程 by flamephoenix 一.模块简介 二.Perl中的类 三.创建类 四.构造函数 实例变量 五.方法 六.方法的输出 七.方法的调用 八.重载 九.析构函数 ...

  9. 【正点原子Linux连载】第二十三章 音频应用编程-摘自【正点原子】I.MX6U嵌入式Linux C应用编程指南V1.1

    第二十三章 音频应用编程 ALPHA I.MX6U开发板支持音频,板上搭载了音频编解码芯片WM8960,支持播放以及录音功能! 本章我们来学习Linux下的音频应用编程,音频应用编程相比于前面几个章节 ...

最新文章

  1. 信息系统项目管理师 章节_信息系统项目管理师章节重点(5)项目整体管理
  2. liunx 在虚拟机(VMware)下挂载光驱命令
  3. Codeforces 766E
  4. python调研报告总结体会_调研报告心得(多篇)
  5. Java继承 implements 与 extends 总结
  6. html5 实现 图片上传预览
  7. Macbook Pro休眠唤醒后后台运行程序被关闭的解决方法
  8. 一款好用的取色工具TakeColor.exe
  9. 数学建模常用解题方法
  10. 下载sqlserver2012 试用_有哪些可以免费试用的电商ERP?
  11. 什么是数据标准化、中心化、归一化?SPSS又如何实现?
  12. 激光测距芯片VL53L0X的使用与代码
  13. 软工网络15团队作业8——Beta阶段敏捷冲刺(Day6)
  14. AcWing 1183电力(Tarjan求割点)
  15. HTML在列表中加图片,HTML + JS 列表显示图片
  16. Arduino智能小车——蓝牙小车
  17. 虹科方案 | 虹科基于空口测试的新型5G毫米波测试方案
  18. 进制数的转换方法大全
  19. spring mvc处理异常
  20. unity中实现ue眼球的渲染

热门文章

  1. Redis开发:hash存储自定义Java对象及value的序列化器设置
  2. CentOS7 安装redis-5.0.5/注册为系统服务及单机启动多个redis服务
  3. Netty 4.x Netty 实现聊天功能
  4. acme.sh签发Let‘s Encrypt证书
  5. Qt工程生成xcode工程文件
  6. Java获取当前时间,并转化为String类型
  7. 在linuxc中如何实现输入隐藏
  8. 超详细轮播图的三种实现方法html+css+javascript
  9. android 点击外部接收事件,Android Dialog外部点击事件
  10. 电脑如何测网速_Macbook Pro怎么查看网速Mac怎么测网速?