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
            }
        }
    }
  • 相关阅读:
    delphi xe10 FMX 启动参数
    delphi xe6 JSON 测试
    oracle实现http请求,oracle发送http请求。
    ORACLE存储过程调用Web Service
    新搭建的iis服务器,运行网站报 System.BadImageFormatException:未能加载文件或程序集”....“或它的某一个依赖项。
    c#的http请求工具类核心代码
    vue-cli3 取消关闭eslint 校验代码
    quartz.net数据库持久化教程
    sql备份一张表的数据
    iis 长期无访问导致定时任务不执行的解决方案
  • 原文地址:https://www.cnblogs.com/fx2008/p/2783844.html
Copyright © 2011-2022 走看看