zoukankan      html  css  js  c++  java
  • [转载]WCF 第十三章 可编程站点 使用WebGet和WebInvoke

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

            2011-06-07 07:09        by        DanielWise,        1807        阅读,        0评论,        收藏,        编辑

    服务可以使用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 database
                return 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
            }
        }
    }
  • 相关阅读:
    javascript基础
    杂谈
    六大设计原则
    MVC的理解
    不错的资源哦
    平时你从哪里获取前端知识?
    网站背景平铺
    js 获取节点
    自适应后的页面用户点击后会放大
    innerHTML的运用
  • 原文地址:https://www.cnblogs.com/fx2008/p/2783844.html
Copyright © 2011-2022 走看看