第二章(契约 续同步请求回复操作)

同步请求回复

对服务操作来说,同步请求回复消息交换是最普通的模式。这个模式就像任何人在面向过程或者面向对象语言中编程的那样。请求回复模式是本地过程调用的原型,对远程过程调用也很普通。图片2.3显示了一个请求回复交互,一个在客户端运行的代理发送请求给一个服务,服务端同步返回消息给客户端。

   WCF使得在客户端和服务端进行请求-回复通信非常容易。在设计阶段,你使用添加服务引用或者svcutil.exe来调用服务元数据终结点而且生成一个客户端代理来模仿服务操作的签名。这允许客户端代码像本地函数调用一样调用代理上的方法。代理把方法名字和参数序列化成一个SOAP消息,然后发送SOAP消息到服务端,然后创建一个.NET类型来表示从服务返回的回复消息。

   列表2.1显示一个服务契约定义。一个服务契约和一个操作契约被定义到代码中。操作契约代表一个可以被客户端调用的方法,或者更准确一些的说,一条消息可以被客户端发送并被服务端理解。注意契约在接口中定义,而不是类定义。

   列表2.2显示了客户端代码,使用一个由添加服务引用生成的代理并调用列表2.1中的服务。这很像列表1.2中显示的代码。

 

   列表2.3 显示了从客户端发送到服务终结点的SOAP消息。有很多值得注意的地方:

   SOAP消息的命名空间是http://tempuri.org/,除非在[ServiceContract]中重载属性否则

   这就是默认的。如果服务将要暴露在一个应用的外面或者在一个相对小的组织外面,你应该

   重载默认属性,因为命名空间结构设计来唯一定义你的服务来避免多个连接服务模棱两可。

   在列表1.1中类的定义中的方法名,GetPrice用来定义wsa:动作在SOAP消息头中。完全的

   动作名是契约命名空间的组合,契约名字(接口名字或者类型,如果没有明确的服务接口被

   使用)操作名字,一个额外的字符串(如果消息是一个相关的回复)。

   SOAP消息体由方法签名控制,具体方法由[OperationContract]和[DataContract]属性

   确定。

   SOAP消息头包括消息将要发送到的地址。这种情况下,它是寄宿在IIS服务器上的SVC文

   件。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值