WCF

序言

接下来讲解一下,如何创建WCF客户端实现与WCF服务端的通信。这里我们主要讲的是与上一节中创建的WCF服务端的通信。

方法一、通过微软自带的svcutil工具生成客户端代理类的方式

创建WCF服务端传送门

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/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/jeremywucnblog/p/12813808.html