WCF通信简单学习实例

  最近在学习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 

 

posted @   我家的小萌珊  阅读(1210)  评论(3编辑  收藏  举报
编辑推荐:
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
阅读排行:
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!
点击右上角即可分享
微信分享提示