WCF 第十三章 可编程站点 使用WebGet和WebInvoke

服务可以使用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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部