本章节主要目的:服务契约的基础知识
服务契约与代码
首先从接口入手[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文件的引用、消息的定义、端口的类型和服务的操作
tempura.org.xsd 用于方法特性的XSD Schema
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中的接口和普通的接口是一样的要求,必须实现每个接口。
代码
以下是客户端对服务端的引用:
引用成功后就可以在客户端调用了
代码如下: