码迷,mamicode.com
首页 > 其他好文 > 详细

从零开始学WCF(2):设计和实现服务协定

时间:2015-04-19 21:12:19      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

消息

  • 消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头

服务

  • 服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个服务操作

终结点

  • 终结点是用来发送或接受消息(或执行这两种操作)的构造。
  • 终结点包括:
  1. 一个定义消息可以发送到的目的地的位置(地址 Address)
  2. 一个描述消息应如何发送的通信机制的规范(绑定 Binding)
  3. 对于可以在该位置发送或接受(或两者皆可)的一组消息的定义(服务协定)该定义还描述了可以发送何种消息。
  • WCF服务作为一个终结点集合向外界公开

创建服务协定

  • 类或接口都可以定义服务协定
  • 建议使用接口,因为接口可以直接对服务协定建模
  • 服务协定接口具有所有托管接口的所有优点:
  1. 服务协定接口可以扩展任何数量的其他服务协定接口。
  2. 一个类可以通过实现服务协定接口来实现任意数量的服务协定。
  3. 可以通过改变接口实现来修改服务协定的实现,而让服务协定保持不变。
  4. 可以通过实现旧接口和新接口来确定服务的版本。老客户端连接到原始版本,而新客户端则可以连接到较新的版本。

定义服务协定

  • 在类或接口上使用ServiceContractAttribute属性标记

定义服务操作

  • 在方法上使用OprerationContractAttribute属性对其进行标记

参数和返回值

  •     每个操作都有一个返回值和一个参数,即时它们为Void。可以使用局部方法将对对象的引用从一个对象传递到另一个对象,但与局部方法不同的是,服务操作不会传递对对象的引用,它们传递的只是对象的副本。
  • 这一点很重要,这是因为参数和返回值中使用的每个类型都必须是可序列化的,换言之,该类型的对象必须能转换成字节流,并能够从字节流转换为对象。
  • 默认情况下基元类型是可序列化的,.net framework中的很多类型都是可序列化的。

 

从零开始学WCF(2):设计和实现服务协定

标签:

原文地址:http://www.cnblogs.com/leonhart/p/4439742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!