一、认识WCF
1、WCF本质上提供一个跨进程、跨机器以致跨网络的服务调用
2、在我们的计算服务应用中,采用了两种服务寄宿方式:通过自我寄宿(Self-Hosting)的方式创建一个控制台应用作为服务的宿主(寄宿进程为Hosting.exe);通过IIS寄宿方式将服务寄宿于IIS中(寄宿进程为IIS的工作进行W3wp.exe)。
3、WCF包含四种类型的契约:服务契约、数据契约、消息契约和错误契约
二、开始第一个WCF程序步骤
创建一个空白的解决方案,添加如下四个项目
Contracts:一个类库项目,定义服务契约(Service Contract),引用System.ServiceMode程序集(WCF框架的绝大部分实现和API定义在该程序集中);
Services:一个类库项目,提供对WCF服务的实现。定义在该项目中的所有WCF服务实现了定义在Contracts中相应的服务契约,所以Services具有对Contracts项目的引用;
Hosting:一个控制台(Console)应用,实现对定义在Services项目中的服务的寄宿,该项目须要同时引用Contracts和Services两个项目和System.ServiceMode程序集;
Client:一个控制台应用模拟服务的客户端,该项目引用System.ServiceMode程序集。
Contracts一般是有一个接口类(只有当该接口打下<ServiceContract()>标签时,才表示作为服务契约),其中定义的方法,只有打上<OperationContract()>标签才为服务接口。
配置文件生成:
1、服务端配置:通过VS的工具(Tools)菜单,选择“WCF Service Configuration Editor”子项,开启这样的一个配置编辑器(当然也可以通过编码的方式实现,但一般是在配置文件中配置,好处就不说了)
2、客户端配置:右键点击Client项目,在弹出的上下文菜单中选择“添加服务引用(Add Service References)”,如图6所示的添加服务引用的对话会显示出来。在地址栏上键入服务元数据发布的源地址(在服务端的配置中有),并指定一个命名空间,点击OK按钮,VS为为你生成一系列用于服务调用的代码和配置