WCF系列教程之WCF服务协定
本文参考自:http://www.cnblogs.com/wangweimutou/p/4422883.html,纯属读书笔记,加深记忆
一、服务协定简介:
1、WCF所有的服务协定层里面的服务接口,都有一个ServiceContract的特性修饰,服务接口里面的操作方法都有OperationContract特性修饰,why?
(1)、服务契约的实现要靠ServiceContractAttribute 属性定义
(2)、服务契约方法的实现要靠 OperationContractAttribute 属性定义
2、如果一个协定(接口)需要向除其之外的客户端公开,那么该接口就应该加上[ServiceContract]特性修饰,那么其信息就由ServiceContractAttribute 属性表示,ServiceContractAttribute关联的接口与Web服务描述语言(WSDL)<portType>元素松散相关,所以服务协定也具备了以下两个功能:
(1)、可用于服务端以指定终结点(可以是配置文件,也可以是硬编码)的方式,来控制其向其他客户端暴露的内容
(2)、客户端可以通过它来于服务端进行通信
3、定义完了服务协定层(服务接口层),就可以实现当前协定层,实现服务协定层后并将其与WCF 绑定和 EndpointAddress 对象一起使用时,此服务协定将公开以供客户端使用。
4、WSDL(Web Service Description Language)Web服务器描述语言是用XML文档来描述Web服务的标准,是Web服务的接口定义语言,由Ariba、Intel、IBM、MS等共同提出,通过WSDL,可描述Web服务的三个基本属性:
(1)、服务做些什么——服务所提供的操作(方法)
(2)、如何访问服务——和服务交互的数据格式以及必要协议
(3)、服务位于何处——协议相关的地址,如URL
在WCF中,WSDL是元数据交换的一种数据格式,通过它的描述,WCF服务程序间就可以进行相应的数据交换,甚至是跨平台的应用间也可以进行数据交换。
二、服务协定ServiceContract属性:
1、服务契约加上ServiceContract特性修饰时,可以看到它有两个构造函数,一个是无参,一个有参。下面具体来说下,有参的和它的参数究竟是干嘛用的
(1)、Name:获取或设置Web服务描述语言(WSDL)中的<portType>元素的名称,设置此名称之后,默认生成的代理类就是该名称+Client
(2)、Namespace:获取或设置 Web 服务描述语言 (WSDL) 中的 <portType> 元素的命名空间
(3)、ConfigurationName:用于查找应用程序配置文件中的服务元素的名称。 默认值是服务实现类的名称。
(4)、ProtectionLevel:使用 ProtectionLevel 属性指定协定绑定对公开协定的终结点要求的加密和/或数字签名的程度。 在此设置的值是为包括错误在内的所有操作消息提供的默认值。
(5)、SessionMode:获取或设置是否允许、不允许或要求会话。使用 SessionMode 属性来要求在终结点之间支持会话的绑定。 会话就是将在两个或多个终结点之间交换的消息集相互关联的方式。 如果您的服务支持信道会话,则可以使用 InstanceContextMode 属性指定您的服务协定实现实例与信道会话实例之间的关系。 如果绑定不支持会话,则会引发异常。具体请参考:WCF系列教程之WCF中的会话.
(6)、CallbackContract:获取或设置当协定为双工协定时的回调协定类型。在 CallbackContract 属性中指定一个接口,该属性表示双向(双工)消息交换中所需的反向协定。 这使得客户端应用程序能够侦听入站操作调用,该调用可以由服务器端服务应用程序独立于客户端活动进行发送。 具有单向操作的回调协定表示从客户端可以处理的服务发出的调用。
WCF系列教程之WCF服务协定的更多相关文章
- WCF系列教程之WCF服务宿主与WCF服务部署
本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆. 一.简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF ...
- WCF系列教程之WCF服务配置工具
本文参考自http://www.cnblogs.com/wangweimutou/p/4367905.html Visual studio 针对服务配置提供了一个可视化的配置界面(Microsoft ...
- WCF系列教程之WCF客户端调用服务
1.创建WCF客户端应用程序需要执行下列步骤 (1).获取服务终结点的服务协定.绑定以及地址信息 (2).使用该信息创建WCF客户端 (3).调用操作 (4).关闭WCF客户端对象 二.操作实例 1. ...
- WCF系列教程之WCF操作协定
一.简介 1.在定义服务协定时,在它的操作方法上都会加上OperationContract特性,此特性属于OperationContractAttribute 类,将OperationContract ...
- WCF系列教程之WCF中的会话
本文参考自http://www.cnblogs.com/wangweimutou/p/4516224.html,纯属读书笔记,加深记忆 一.WCF会话简介 1.在WCF应用程序中,回话将一组消息相互关 ...
- WCF系列教程之WCF消息交换模式之单项模式
1.使用WCF单项模式须知 (1).WCF服务端接受客户端的请求,但是不会对客户端进行回复 (2).使用单项模式的服务端接口,不能包含ref或者out类型的参数,至于为什么,请参考C# ref与out ...
- WCF系列教程之WCF实例化
本文参考自http://www.cnblogs.com/wangweimutou/p/4517951.html,纯属读书笔记,加深记忆 一.理解WCF实例化机制 1.WCF实例化,是指对用户定义的服务 ...
- WCF系列教程之WCF服务配置
文本参考自:http://www.cnblogs.com/wangweimutou/p/4365260.html 简介:WCF作为分布式开发的基础框架,在定义服务以及消费服务的客户端时可以通过配置文件 ...
- WCF系列教程之WCF客户端异常处理
本文参考自:http://www.cnblogs.com/wangweimutou/p/4414393.html,纯属读书笔记,加深记忆 一.简介 当我们打开WCF基础客户通道,无论是显示打开还是通过 ...
随机推荐
- Zookeeper客户端cli_st为何在crontab中运行不正常?
实践中,发现直接在命令行终端运行cli_st时,能够得到预期的结果,但一将它放到crontab中,则只收到: bye 相关的一段clit_st源代码如下: if (FD_ISSET(, &rf ...
- vue 使用axios 数据请求第三方插件的使用
axios 基于http客户端的promise,面向浏览器和nodejs 特色 浏览器端发起XMLHttpRequests请求 node端发起http请求 支持Promise API 监听请求和返回 ...
- Ubuntu 16.04调节屏幕显示字体大小
对于高分辨屏幕来说,Ubuntu的字体可能会有点小,反之,低分率的屏幕字体有点大,设置方法如下: [System Settings]->[Displays]->[ Scale for me ...
- TOAD连接ORACLE而不装ORACLE 客户端的方法
TOAD连接ORACLE而不装ORACLE 客户端的方法 原来连接ORACLE总是要装ORACLE客户端,挺麻烦得,一方面要带ORACLE得盘,另一方面,装这么大得东西也让人很不爽. ORACLE好像 ...
- Linux系统的运行级的概念
Linux OS 将操作 环境分为以下7个等级,即 0:关机 1:单用户模式(单用户.无网络) 2:无网络支持的多用户模式(多用户.无网络) 3:有网络支持的多用户模式(多用户.有网络) 4:保留,未 ...
- WPF自定义ComboBox
<ControlTemplate x:Key="ComboBoxTextBox" TargetType="{x:Type TextBox}"> &l ...
- infopath 2007 升级到2013 栏目字段重复生成问题
1. 把Expense Statement.xsn的xsn扩展名改成zip.然后解压后会看到有一个mnifest.xsf. 2. 在vs 2013 中打开它. 3. Search for the fi ...
- Android 屏幕适应
基础知识: 屏幕密度: Density-independent pixel (dp):密度无关像素单位(一个相对的值).1dp 的大小相当于一个 160 dpi 屏幕上一个像素的大小. 计算方法:px ...
- 【ocp-12c】最新Oracle OCP-071考试题库(37题)
19.choose the best answer View the Exhibit and examine the structure of the PROMOTIONS table. Evalua ...
- soapui加载天气预报接口报错Characters larger than 4 bytes are not supported: byte 0xb1 implies a length of more than 4 byte的解决办法
soapui加载天气预报接口时报错如下: Error loading [http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl ...