最近在学习wcf通信,自己简单做个实例分享一下,环境是vs2015,使用的项目都是wpf的项目,其实大家用winform或者web项目也可以,都可以用的。

一、服务器端

1、创建wcf服务

 

服务名为wcfserver,而后自动生成如下两个文件,imywcfserver为服务契约接口,mywcfserver为服务契约接口的具体实现。服务契约其实就是声明了客户端可以访问的函数接口。

 

2、声明服务契约

imywcfservice代码:

 1 namespace wcfserver
 2 {
 3     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“imywcfservice”。
 4     [servicecontract]
 5     public interface imywcfservice
 6     {
 7         //声明服务契约的接口函数
 8 
 9         [operationcontract]
10         void dowork();
11 
12         [operationcontract]
13         string getsomedata(string name);
14     }
15 }

 

3、实现服务契约

 mywcfserivice代码:

 1 namespace wcfserver
 2 {
 3     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“mywcfservice”。
 4     public class mywcfservice : imywcfservice
 5     {
 6         public void dowork()
 7         {
 8             console.write("111");
 9             console.read();
10         }
11         public string getsomedata(string name)
12         {
13             return name + " hello!";
14         }
15     }
16 }

 

app.config配置文件会自动生成如下代码:

 1 <system.servicemodel>
 2         <bindings>
 3             <basichttpbinding>
 4                 <binding name="basichttpbinding_imywcfservice" />
 5             </basichttpbinding>
 6         </bindings>
 7         <client>
 8             <endpoint address="http://localhost:8733/design_time_addresses/wcfserver/mywcfservice/"  //引用服务的链接
 9                 binding="basichttpbinding" bindingconfiguration="basichttpbinding_imywcfservice"
10                 contract="mywcf.imywcfservice" name="basichttpbinding_imywcfservice" />
11         </client>
12 </system.servicemodel>

 

4、连通性测试

使用浏览器访问该引用服务链接,如出现如下图类似界面即服务端部署成功。

 

二、客户端

1、客户端添加wcf服务引用

 

2、调用服务契约函数

1 //创建wcf服务引用的实例
2 wcfclient.mywcf.mywcfserviceclient w = new mywcfserviceclient(); 
3 //调用服务契约声明的接口
4 w.dowork();
5 string msg = w.getsomedata("bobbie");
6 messagebox.show(msg);

 

3、运行结果

客户端出现“bobbie hello!”的弹窗,服务端终端打印”111″

 

  以上便是wcf的简单应用,更复杂的还有全双工的还没研究,研究好了会再分享。wcf可以通过简单的配置和部署就可以实现c/s架构。