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>yu

时间: 2024-10-10 18:18:48

WCF系列教程之WCF服务协定的相关文章

WCF系列教程之WCF服务宿主

本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆. 一.简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF也不例外.如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文和生存期的运行时环境当中,承载服务的环境,称之为宿主.WCF服务可以在支持托管代码的任意Windows进程中运行.WCF提供了统一编程模型,用于生成面向服务的应用程序.此编程模型保持一致且独立于部署服务的运行时环境

WCF系列教程之WCF实例化

本文参考自http://www.cnblogs.com/wangweimutou/p/4517951.html,纯属读书笔记,加深记忆 一.理解WCF实例化机制 1.WCF实例化,是指对用户定义的服务对象以及与其相关的实例上下文对象的生存期的控制,也就是说每一个服务类其实就是一个服务实例,客户端在调用服务端中的服务方法时,需要实例化一个服务端代理类对象,实例化就是对这个对象的生命周期的管理. 2.实例化行为(使用 System.ServiceModel.ServiceBehaviorAttrib

WCF系列教程之WCF服务配置

简介:WCF作为分布式开发的基础框架,在定义服务以及消费服务的客户端时可以通过配置文件的方式,来进行设置,这充分的体现了WCF的伸缩性和自定义性.当然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性来完成服务端与客户端的配置,然而这种方式并不利于后期程序的更改和扩展. 1.WCF配置文件结构如下图所示,包含三个部分,services(服务).bindings()

WCF系列教程之WCF客户端异常处理

本文参考自:http://www.cnblogs.com/wangweimutou/p/4414393.html,纯属读书笔记,加深记忆 一.简介 当我们打开WCF基础客户通道,无论是显示打开还是通过调用操作自动打开.使用客户端或者通过对象调用操作,或者关闭基础客户端通道,都会在客户端应用程序中出现异常,WCF是基于网络的通讯服务,错误异常也是要基于消息传递的,在WCF中提供了一个错误消息处理的类FaultException,WCF客户端可以通过它,来接收服务端传递回来的异常信息. 二.WCF异

kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题................................ 1 前言............................................................................................................... 1

集群系列教程之:keepalived+lvs 部署

集群系列教程之:keepalived+lvs 前言:最近看群里很多人在问keepalived+lvs的架构怎么弄,出了各种各样的问题,为此特别放下了别的文档,先写一篇keepalived+lvs架构的文档,使那些有需求的人能够得以满足.但是此篇文档是架构文档,不是基础理论,但我想你能做这个架构,势必也了解了基础理论知识,更多的理论知识体系,请看下回分解.... 测试拓扑: 环境说明: 从上面的拓扑图,就可以看出本实验的环境信息,其中实线代表的是真实的物理连接,而虚线表示的是逻辑关系.hostna

Kali Linux系列教程之OpenVas安装

Kali Linux系列教程之OpenVas安装 文 /玄魂 目录 Kali Linux系列教程之OpenVas安装... 1 前言... 1 1.  服务器层组件... 1 2.客户层组件... 1 安装过程... 2 Initial setup. 2 初始管理员密码... 4 从浏览器访问后台... 4 更新数据... 7 管理用户... 8 扫描器配置信息查看... 9 修复安装错误... 9 创建证书... 10 更新NVT. 12 客户端证书错误... 13 前言 OpenVAS是一款

Android系列教程之Activity的生命周期

通过上一节"Android系列教程之Android项目的目录结构"我们已经知道了什么是Activity,那么为什么我们创建一个Activity的导出类的时候为什么都要覆盖Activity的onCreate方法呢,为什么会在onPause()方法中保存一些当前Activity中的变化,要弄明白这些就要先了解Activity的生命周期,也就是一个Activity才开始到结束都要经过那些状态,下面通过一个例子了解Activity的声明周期. 一:Activity的生命周期方法 Android

Nmap扫描教程之DNS服务类

Nmap扫描教程之DNS服务类 Nmap DNS服务类 DNS(Domain Name System,域名系统)的作用就是将主机名解析为对应IP地址的过程.通常主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名.所以,DNS服务器在解析一个主机名时,需要一级一级的进行解析,即递归查询.为了方便用户下次访问,DNS服务器会将解析过的主机名临时缓存.通过对DNS服务器进行扫描,可以获取到一些基本信息.如版本.服务器地址及缓存的域名等.本节将介绍DNS服务扫描方法. Nmap获取DNS信息 通