WCF开发实战教程.doc

上传人:小** 文档编号:553071 上传时间:2018-10-25 格式:DOC 页数:88 大小:16.40MB
返回 下载 相关 举报
WCF开发实战教程.doc_第1页
第1页 / 共88页
WCF开发实战教程.doc_第2页
第2页 / 共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 服务库”。在下面的“名称 ”文本框中,填写我

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

3、 System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.Serialization;namespace ServicesDataContractpublic class BookDataMemberpublic string BookNO;DataMemberpublic string BookName;DataMemberpublic decimal BookPrice;为了保证此类在 WCF 调用中能够被序列化,我们在 Book 类上面加入DataContract 标签,在每个

4、需要序列化的成员变量上加入DataMember标签。这两个标签在使用的进候需要导|入 using System.Runtime.Serialization 命名空间。到此为至,我们创建完了需要在服务中传输的复杂的数据类型 Book。第四步:创建服务接口创建服务接口,声明对外发布的类和方法。在“ 解决方案窗口” 中,我们右击 Services 项目名,选择“添加”,再单击“类”图 3在弹出的“添加新项 ”窗口中,选择 “类”,并在“名称” 文本框中写入项名称“IBookService.cs” 。|图 5在此类文件中我们编写服务接口,代码如下:using System;using System.C

5、ollections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace ServicesServiceContractpublic interface IBookServiceOperationContractvoid AddBooks(Book book);OperationContractList GetAllBooks();OperationContractvoid RemoveBook(string id);在 IBookService 接口上面,我们定义了 ServiceCo

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

7、项名称“BookService.cs”。|图 6在此类文件中编写代码实现 IBookService.cs 服务接口。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace ServicesServiceBehavior(InstanceContextMode=InstanceContextMode.Single)public class BookService : IBookServiceList _Books =

8、new List();public void AddBooks(Book book)book.BookNO = Guid.NewGuid().ToString();_Books.Add(book);public List GetAllBooks()return _Books;|public void RemoveBook(string id)Book book = _Books.Find(p = p.BookNO = id);_Books.Remove(book);此类是对 IBookService 接口的具体实现,在此类的上面我们声明了ServiceBehavior(InstanceCont

9、extMode=InstanceContextMode.Single)标签,此标签代表这个类采用 SingleTone(单类模式)来生成对象。使用ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)接口需要导入using System.ServiceModel;命名空间。第六步:配置 WCF 服务到目前为至,我们建立好了 WCF 服务,那我们如何让 WCFSVCHost(WCF 服务主机) 理解我们编写的服务类,并能够运行我们编写的服务呢。这需要我们在 App.Config 里面注册一下我们的 WCF 服务。代码如下:这

10、么多东西谁能记得下?!没关系,VS2008 为我们提供了可视化的操作界面。在 Services 项目中右击“App.Config”配置文件,在弹出的右键菜单中选择“编辑 WCF 配置”。图 7弹出界面如下:|图 8在此界面中暴露两个对外的终结点(外部可以访问到的类或接口),其中下面一个是元数据终结点,用来向外提供服务信息的终结点。而另一个(即上面的终结点),是向外公布我们编写的ServiceContract 的类,但我们可以看到它的 Contract 还是我们在第一步中删掉的 Services.IService1 这个终结点。不仅如此,在右侧的服务中还依旧是我们在第一步中删除的 Services.Service1 服务。这说明虽然在第一步中我们删除了那两个自动生成的类文件,但配置文件中仍没有删除这两个类文件的配置信息。下面我们把它们改变一下。单击左侧的“服务 ”-“Services.Service1”在右侧的 Name,弹出 “服务类型浏览器”对话框,在此类型中我们找到此 WCF 服务项目编译出来的 Services.dll 文件,双击它就可以出现此服务中的对外公布的服务,点击选中它单击确定。

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com