最近在学习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、开启服务
ServiceHost host = new ServiceHost(typeof(MyWCFService)); host.Open();
5、连通性测试
使用浏览器访问该引用服务链接,如出现如下图类似界面即服务端部署成功。
二、客户端
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架构。更复杂的全双工方式可以看我的另一篇文章:https://www.cnblogs.com/xiaomengshan/p/11175566.html