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

  • 相关阅读:
    前端 HTML
    python3内置函数
    内置函数的随机验证码
    线程、进程以及协程,上下文管理器
    线程池的定义方法
    python_控制台输出带颜色的文字方法
    while 循环 continue break 用法例子
    JVM 基础知识
    ios 设置状态栏文本颜色为白色
    ios 常用第三方库要加的framework,ARC的设置
  • 原文地址:https://www.cnblogs.com/jeremywucnblog/p/12813808.html
Copyright © 2020-2023  润新知