(2) 第二章 WCF服务与数据契约 服务契约详解(一) - 服务契约

本章节主要目的:服务契约的基础知识

服务契约与代码

首先从接口入手[ServiceContract]特性定义了服务契约,然后通过[OperationContract]特性定义方法。

示例代码如下:



以上DEMO CODE是一个计算器的加的功能接口。在接口ICalculator上附加[ServiceContract]特性后说明这是一个服务契约,对外公开。函数上的[OperationContract]特性定义操作方法,对外公开。

接下来介绍一个微软的工具svcutil.exe,可以容易的将服务生成代码,接下使用这个工具提取上段代码的元数据。

在Visual Studio 命令提示符下,执行svcutil.exe [路径]\[名称].dll

示例svcutil.exe C:\Users\Sunnes001\Desktop\WCF服务契约重载\WCF服务契约重载\WCF服务契约重载\bin\WCF服务契约重载.dll

大家可以看到生成了3个文件,以下对3个文件的作用进行描述。

tempuri.org.wsdl                                                                        WSDL文档,包括对XSD文件的引用、消息的定义、端口的类型和服务的操作

tempuri.org.wsdl下载

tempura.org.xsd                                                                         用于方法特性的XSD Schema

tempura.org.xsd下载

schemas.microsoft.com.2003.10.Serialization.xsd            用于简单.NET类型的标准XSD Schema

schemas.microsoft.com.2003.10.Serialization.xsd下载



源代码与WSDL元素之间的映射规则


WSDL元素                                                                  源代码

消息名称:ICalculator_Add                                       接口名称_方法名称+输入/输出

端口类型名称:ICalculator                                        接口名称

操作名称:Add                                                             方法名称

到此应该可以了解到了,在代码定义的特性都会在WSDL文档中通过以上的映射规则映射。


接下来对以上接口的实现

WCF中的接口和普通的接口是一样的要求,必须实现每个接口。

代码



以下是客户端对服务端的引用:

引用成功后就可以在客户端调用了

代码如下:



简单WCF调用的实现源码下载




猜你喜欢

转载自blog.csdn.net/wujiang1984/article/details/7175641