您的位置:首页 > 其它

WCF学习笔记之基础知识梳理(1)

2013-03-07 17:48 337 查看
比较重要的概念,学习WCF必须掌握的基础知识。

1、契约

任何一个分布式应用程序,它之所以能够互相传递消息,都是事先制定好数据交换规则的,这个规则正是交换数据的双方(比如服务器端和客户端)能彼此理解对方的依据,WCF 作为分布式开发技术的一种,同样具有这样一种特性。而在 WCF 中制定的的规则就被称之为契约(Contract) ,它是 WCF 的消息标准,是任何一个 WCF 程序不可或缺的一部分。

WCF有四种契约:

(1)用于定义服务操作的服务契约:Service Contract,服务契约描述了客户端能够执行的服务操作。这种级别的契约又包括两种:ServiceContract 和 OperationContract 。ServiceContract 用于类或者结构上,用于指示 WCF 此类或者结构能够被远程调用,而 OperationContract 用于类中的方法(Method)上,用于指示 WCF 该方法可被远程调用。

(2)用于自定义数据结构的数据契约:Data Contract ,数据契约定义了与服务交互的数据类型。数据契约也分为两种:DataContract 和 DataMember。 DataContract 用于类或者结构上,指示 WCF 此类或者结构能够被序列化并传输,而 DataMember 只能用在类或者结构的属性(Property)或者字段(Field)上,指示 WCF 该属性或者字段能够被序列化传输。

(3)用于自定错误异常的异常契约:Fault Contract,错误契约定义了服务抛出的错误,以及服务处理错误和传递错误到客户端的方式。我们可以自定义异常消息的格式,将我们关心的消息放到错误消息中传递给客户端,此时需要在方法上添加自定义一个错误消息的类,然后在要处理异常的函数上加上 FaultContract,并将异常信息指示返回为自定义格式。

(4)用于控制消息格式的消息契约:Message Contract ,消息契约允许服务直接与消息交互。消息契约可以是类型化的,也可以是非类型化的。如果系统要求互操作性,或者遵循已有消息格式,那么消息契约会非常有用。它能自定义消息格式,包括消息头,消息体,还能指示是否对消息内容进行加密和签名。

2、终结点

终结点有地址、绑定、协定和行为组成。

(1)地址:地址唯一地标识终结点,并告诉服务的潜在客户其所在的位置。 在 WCF 对象模型中,地址由

EndpointAddress 类表示。 一个 EndpointAddress 类包含:

一个表示服务地址的 Uri 属性。

一个表示服务安全标识和可选消息头集合的 Identity 属性。 可选消息头用于提供其他更多详细寻址

信息来标识终结点或与终结点交互。

(2)绑定:绑定指定如何与终结点进行通信。 这包括:

要使用的传输协议(例如,TCP 或 HTTP)。

要用于消息的编码(例如,文本或二进制)。

必需的安全要求(例如,SSL 或 SOAP 消息安全)。

(3)协定:协定概述了终结点向客户端公开的功能。 协定指定:

客户端可以调用的操作。

消息的窗体。

调用操作所需的输入参数或数据的类型。

客户端可以预期的处理或响应消息的类型。

(4)行为:可以使用终结点行为来自定义服务终结点的本地行为。 终结点行为是通过参与构建 WCF 运行库

的过程来实现这一点的。 终结点行为的一个示例是 ListenUri 属性,可以利用该属性指定与 SOAP 或

Web 服务描述语言 (WSDL) 地址不同的侦听地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: