WCF学习-构建WCF服务(3)
2014-04-25 23:13
225 查看
前面已经很清楚的说明了,一个WCF应用程序集需要三部分组成:WCF服务程序集、宿主程序、客户端;下面我们将入手构建一个WCF服务程序,也就是实现第一步;
在回顾下,前面已经指出:应用程序中定义的WCF契约接口被称为服务契约,实现了这些接口的类或结构称作服务类型;也就是说构建一个WCF服务类需要:一个契约接口以及实现该接口的类;下面将正式使用VS2010构建一个WCF服务契约(接口)以及WCF服务类型(接口实现类);
步骤一:首先使用VS2010建立一个空项目,解决方案名称为WcfWerviceTest,项目名称为CalServiceLib,这里我们就是建立一个简单计算的服务库;建好的工程如下:
(1)添加System.ServiceModel.dll程序集的引用
(2)添加服务契约接口文件ICalService.cs
(3)添加服务类型类文件CalService.cs,这个文件就是实现了接口ICalService,类CalService就是一个WCF的服务类型;
步骤二:创建服务契约和服务
需要注意的是都要引入using System.ServiceModel;命名空间。还有由于我们是从空工程建立的,所以要将程序的输出类型选择为类库;然后,如果编译成功的话,我们的第一个WCF服务库就建立成功了;
说明:(1)[ServiceContract]特性和[OperationContract]特性
为了使接口能一般接口能为WCF所提供的服务,则必须使用[ServiceContract]特性来修饰一个接口,这也是一般接口和契约接口不同的地方;在WCF框架中使用的方法必须使用[OperationContract]特性来修饰;当然这些特性也有各自的属性,具体到应用时在分析;
(2)其实构建WCF服务类型时并不需要定义接口即服务契约,可以直接将[ServiceContract]特性和[OperationContract]特性应用到服务类型上;虽然这种方法是可行的,但是显示定义个接口类型去表示服务契约还是有很多好处,最明显的好处就是给定的服务接口可以被应用到多个服务类型,从而获取到高度的多态性;另外一个好相处服务契约接口通过接口继承实现新的契约;
如下面代码就是作为契约的服务类型:
在回顾下,前面已经指出:应用程序中定义的WCF契约接口被称为服务契约,实现了这些接口的类或结构称作服务类型;也就是说构建一个WCF服务类需要:一个契约接口以及实现该接口的类;下面将正式使用VS2010构建一个WCF服务契约(接口)以及WCF服务类型(接口实现类);
步骤一:首先使用VS2010建立一个空项目,解决方案名称为WcfWerviceTest,项目名称为CalServiceLib,这里我们就是建立一个简单计算的服务库;建好的工程如下:
(1)添加System.ServiceModel.dll程序集的引用
(2)添加服务契约接口文件ICalService.cs
(3)添加服务类型类文件CalService.cs,这个文件就是实现了接口ICalService,类CalService就是一个WCF的服务类型;
服务契约 | 服务 |
using System.ServiceModel; namespace CalServiceLib { [ServiceContract] public interface ICalService { [OperationContract] double add(double x, double y); [OperationContract] double sub(double x, double y); [OperationContract] double mul(double x, double y); [OperationContract] double div(double x, double y); } } | using System.ServiceModel; namespace CalServiceLib { public class CalService:ICalService { public double add(double x, double y) { return x + y; } public double sub(double x, double y) { return x - y; } public double mul(double x, double y) { return x * y; } public double div(double x, double y) { return x / y; } } } |
需要注意的是都要引入using System.ServiceModel;命名空间。还有由于我们是从空工程建立的,所以要将程序的输出类型选择为类库;然后,如果编译成功的话,我们的第一个WCF服务库就建立成功了;
说明:(1)[ServiceContract]特性和[OperationContract]特性
为了使接口能一般接口能为WCF所提供的服务,则必须使用[ServiceContract]特性来修饰一个接口,这也是一般接口和契约接口不同的地方;在WCF框架中使用的方法必须使用[OperationContract]特性来修饰;当然这些特性也有各自的属性,具体到应用时在分析;
(2)其实构建WCF服务类型时并不需要定义接口即服务契约,可以直接将[ServiceContract]特性和[OperationContract]特性应用到服务类型上;虽然这种方法是可行的,但是显示定义个接口类型去表示服务契约还是有很多好处,最明显的好处就是给定的服务接口可以被应用到多个服务类型,从而获取到高度的多态性;另外一个好相处服务契约接口通过接口继承实现新的契约;
如下面代码就是作为契约的服务类型:
[ServiceContract] public class calservice { [OperationContract] string GetData(int value){} } |
相关文章推荐
- 学习构建一个简单的wcf服务
- 【学习】构建WCF面向服务的应用程序系列课程笔记:(1) WCF概要
- 【学习】构建WCF面向服务的应用程序系列课程笔记:(3)契约版本处理
- 【学习】构建WCF面向服务的应用程序系列课程笔记:(2) 契约设计
- 【学习】WCF的服务契约、复杂类型序列化、消息契约的实现
- WCF服务编程基础学习系列(二)
- WCF学习之旅—WCF服务的WAS寄宿(十二)
- SpringCloud与构建微服务学习笔记整理
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
- [导入]构建WCF面向服务的应用程序系列课程(1):WCF概要.zip(12.00 MB)
- 学习之路十四:客户端调用WCF服务的几种方法小议
- wcf系列学习5天速成——第五天 服务托管
- WCF开发指南之构建服务
- WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务
- Docker学习(1)基础命令 和 构建nginx web服务
- WCF-学习笔记概述之计算服务(1)
- Microsoft 用于构建面向服务的应用程序的统一编程模型--Indigo简介 - WCF(WindowsCommunicationFoundation)构建面向服务的分布式应用
- WCF随录(2)—构建WCF的服务架构
- 一步一个脚印学习WCF之一WCF概要(中)之客户端与服务
- [导入]构建WCF面向服务的应用程序系列课程(9):并发, 吞吐量与限流.zip(21.43 MB)