C#上位机之—Winform之间实现WCF通讯简单示例

管理员

WCF是微软弄的一组数据通信的开发接口,即windows通讯接口。和TCP类似需要IP地址和端口号,服务端提供一些函数接口,客户端可进行调用,支持多个客户端。不太懂理论,直接看应用吧。

我的Winform程序A中定义了一个学校(School)类,其中学生(Student)的身高体重不断变化,并可新增或删除学生。现在我新建另一个Winform程序B,要实现以下简单功能:

1.B和A进行通讯连接,连接建立后程序A实例化一个School;

2.B可以发命令给A,对学生进行新增和删除工作;

3.B界面的文本框可以实时刷新A中School的学生的动态(身高,体重等变化);下面通过WCF实现:

首先建立winform程序A,右击项目添加类->WCF服务->命名->点击保存;

此时会生成两个cs文件,IService.cs和Service.cs,其中IService.cs定义了函数接口,Service中是函数的具体实现,如图:

 <-IService.cs    <-Service.cs

接口和函数写好后,要对WCF服务进行配置,打开app.config,如图:

 首先是IP地址,图中1和2不一致,1是基地址(可写为localhost也可指定IP),2是客户端访问接口地址。includeexceptiondetailinFault设置为true,可以捕获通道异常,下面的是一些时长和接受缓存设置。

配置完成后,下面来开启服务:添加引用:

using System.ServiceModel;
using System.ServiceModel.Description;
View Code

开启服务:

ServiceHost server = new ServiceHost(typeof(HostInterface));
server.Open();
View Code

服务端已经完成,运行程序A,新建客户端程序B,右击B项目,点击添加服务引用,在右图中输入服务地址(上述地址2),->转到->命名->确定;

  ->   

如图表示添加成功,然后右击选择配置服务引用:

   ->    

若接口中需要传递List类型,则按照图中配置: