序言
接下来讲解一下,如何创建WCF客户端实现与WCF服务端的通信。这里我们主要讲的是与上一节中创建的WCF服务端的通信。
方法一、通过微软自带的svcutil工具生成客户端代理类的方式
1、我们添加一个控制台应用程序,命名为Client;
2、以管理员身份启动Host.exe;
3、接下来我们使用微软自带的svcutil来生成Host服务的客户端代理类。以管理员身份启动VS自带的开发人员工具,并将目录转到Client项目文件夹下。
cd C:UsersJeremyDesktopWcfDemoClient
svcutil http://localhost:8800/?wsdl /o:Client.cs
4、将生成的2个文件复制到Client项目中,或者在Client添加现有项。并添加System.ServiceModel;
5、删除现有的App.config文件,并重命名output.config为App.config;
6、在Client对应的Program.cs下编写如下程序,然后启动Client程序。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Client { class Program { static void Main(string[] args) { WcfServicesClient client = new WcfServicesClient(); Console.WriteLine(client.Add(10, 20)); Console.ReadKey(); } } }
测试结果
总结
1、我们可以借助微软自带的svcutil工具来生成服务端对应的客户端代理类(以管理员身份启动和修改服务端对应的名称);
svcutil http://localhost:8800/?wsdl /o:Client.cs
2、生成代理类时,服务端需要先开启(以管理员身份启动);
方法二、通过添加服务引用的方式
这种方法和WebService的方式类似,不做详细说明。
1、项目引用上右击选择添加服务引用;
2、编写如下代码,实现客户端与服务端的通信。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Client2 { class Program { static void Main(string[] args) { ServiceReference2.WcfServicesClient client = new ServiceReference2.WcfServicesClient(); Console.WriteLine(client.Add(10, 30)); Console.ReadKey(); } } }
注意:同样需要添加System.ServiceModel引用。
作者:Jeremy.Wu
出处:https://www.cnblogs.com/jeremywucnblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。