WCF开发实战教程.doc

上传人:飞****9 文档编号:134088383 上传时间:2020-06-02 格式:DOC 页数:88 大小:17.33MB
返回 下载 相关 举报
WCF开发实战教程.doc_第1页
第1页 / 共88页
WCF开发实战教程.doc_第2页
第2页 / 共88页
WCF开发实战教程.doc_第3页
第3页 / 共88页
WCF开发实战教程.doc_第4页
第4页 / 共88页
WCF开发实战教程.doc_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《WCF开发实战教程.doc》由会员分享,可在线阅读,更多相关《WCF开发实战教程.doc(88页珍藏版)》请在金锄头文库上搜索。

1、WCF开发实战系列教程1:创建第一个WCF服务在这个实战中我们将使用DataContract,ServiceContract来构建WCF服务,并使用VS2008内置的“WCFSVCHost”运行我们创建的WCF服务,并使用“WCF测试客户端”来测试我们创建的服务。在此WCF服务中我们将建立一个关于Book的服务,并实现对Book的添加、删除和检索操作。第一步:创建“WCF服务库”“文件(F)”-“新建项目(P).”打开新建项目对话框。在左侧的“项目类型”中选择“WCF”,然后再在右侧的“模板”中选择“WCF服务库”。在下面的“名称”文本框中,填写我们要创建的WCF服务库的项目名称“Servic

2、es”。图1点击确定,会创建出我们的WCF服务库项目,在解决方案中会自动为我们生成两个类文件“IService.cs”和“Service.cs”。图2这两个类文件是两个WCF示例文件,对我们开发没有什么用处,现在我们删掉这两个文件。第二步:创建Book实体类在“解决方案窗口”中,我们右击Services项目名,选择“添加”,再单击“类”图3在弹出的“添加新项”窗口中,选择“类”,并在“名称”文本框中写入项名称“Book.cs”。图4第三步:为Book实体类编写代码using System;using System.Collections.Generic;using System.Linq;us

3、ing System.Text;using System.Runtime.Serialization;namespace ServicesDataContract public classBook DataMember public stringBookNO;DataMember public stringBookName;DataMember public decimalBookPrice; 为了保证此类在WCF调用中能够被序列化,我们在Book类上面加入DataContract标签,在每个需要序列化的成员变量上加入DataMember标签。这两个标签在使用的进候需要导入using Syst

4、em.Runtime.Serialization命名空间。到此为至,我们创建完了需要在服务中传输的复杂的数据类型Book。第四步:创建服务接口创建服务接口,声明对外发布的类和方法。在“解决方案窗口”中,我们右击Services项目名,选择“添加”,再单击“类”图3在弹出的“添加新项”窗口中,选择“类”,并在“名称”文本框中写入项名称“IBookService.cs”。图5在此类文件中我们编写服务接口,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using Syste

5、m.ServiceModel;namespace ServicesServiceContract public interfaceIBookService OperationContract voidAddBooks(Book book);OperationContractList GetAllBooks();OperationContract voidRemoveBook(string id); 在IBookService接口上面,我们定义了ServiceContract标签,此标签代表此接口及实现此接口的类都是对外发布的Service类,在每个需要对外发布的方法上都加上OperationC

6、ontract标签,以使外部可以访问到此方法。ServiceContract和OperationContract这两个标签需要导入using System.ServiceModel命名空间。第五步:创建实现服务接口的类实现我们上面声明的服务接口,实现对Book的添加、删除和检索的具体功能。在“解决方案窗口”中,我们右击Services项目名,选择“添加”,再单击“类”图3在弹出的“添加新项”窗口中,选择“类”,并在“名称”文本框中写入项名称“BookService.cs”。图6在此类文件中编写代码实现IBookService.cs服务接口。using System;using System.C

7、ollections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace ServicesServiceBehavior(InstanceContextMode=InstanceContextMode.Single) public classBookService : IBookService List _Books = new List(); public voidAddBooks(Book book) book.BookNO = Guid.NewGuid().ToString();

8、_Books.Add(book); public ListGetAllBooks() return _Books; public voidRemoveBook(string id) Book book = _Books.Find(p = p.BookNO = id); _Books.Remove(book); 此类是对IBookService接口的具体实现,在此类的上面我们声明了ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)标签,此标签代表这个类采用SingleTone(单类模式)来生成对象。使用ServiceBe

9、havior(InstanceContextMode=InstanceContextMode.Single)接口需要导入using System.ServiceModel;命名空间。第六步:配置WCF服务到目前为至,我们建立好了WCF服务,那我们如何让WCFSVCHost(WCF服务主机)理解我们编写的服务类,并能够运行我们编写的服务呢。这需要我们在App.Config里面注册一下我们的WCF服务。代码如下: 这么多东西谁能记得下?!没关系,VS2008为我们提供了可视化的操作界面。在Services项目中右击“App.Config”配置文件,在弹出的右键菜单中选择“编辑WCF配置”。图7弹出

10、界面如下:图8在此界面中暴露两个对外的终结点(外部可以访问到的类或接口),其中下面一个是元数据终结点,用来向外提供服务信息的终结点。而另一个(即上面的终结点),是向外公布我们编写的ServiceContract的类,但我们可以看到它的Contract还是我们在第一步中删掉的Services.IService1这个终结点。不仅如此,在右侧的服务中还依旧是我们在第一步中删除的Services.Service1服务。这说明虽然在第一步中我们删除了那两个自动生成的类文件,但配置文件中仍没有删除这两个类文件的配置信息。下面我们把它们改变一下。单击左侧的“服务”-“Services.Service1”在右侧的Name,弹出“服务类型浏览器”对话框,在此类型中我们找到此WCF服务项目编译出来的Services.dll文件,双击它就可以出现此服务中的对外公布的服务,点击选中它单击确定。图9这样我们就可以把对外公司的服务改变为我们刚编写的服务了。然后,我们展开左侧“服务”-“Services.BookService”-“终结点”,单击第一个“空名称”,从右边的“终结点属性”中的Contract中我们可以看到,这里的Contract仍然用的是Services.IService1。图10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号