教程:使用 Windows Communication Foundation 客户端

本教程介绍创建基本 Windows Communication Foundation (WCF) 应用程序所要完成的五个任务中的最后一个任务。 有关教程概述,请参阅教程:Windows Communication Foundation 应用程序入门

创建并配置 Windows Communication Foundation (WCF) 代理后,创建客户端实例并编译客户端应用程序。 然后使用它来与 WCF 服务通信。

本教程介绍如何执行下列操作:

  • 添加代码以使用 WCF 客户端。
  • 对 WCF 客户端进行测试。

添加代码以使用 WCF 客户端

客户端代码将执行以下步骤:

  • 实例化 WCF 客户端。
  • 从生成的代理调用服务操作。
  • 在操作调用完成后关闭客户端。

打开“GettingStartedClient”项目中的“Program.cs”或“Module1.vb”文件,将其代码替换为以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GettingStartedClient.ServiceReference1;

namespace GettingStartedClient
{
    class Program
    {
        static void Main(string[] args)
        {
            //Step 1: Create an instance of the WCF proxy.
            CalculatorClient client = new CalculatorClient();

            // Step 2: Call the service operations.
            // Call the Add service operation.
            double value1 = 100.00D;
            double value2 = 15.99D;
            double result = client.Add(value1, value2);
            Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

            // Call the Subtract service operation.
            value1 = 145.00D;
            value2 = 76.54D;
            result = client.Subtract(value1, value2);
            Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);

            // Call the Multiply service operation.
            value1 = 9.00D;
            value2 = 81.25D;
            result = client.Multiply(value1, value2);
            Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);

            // Call the Divide service operation.
            value1 = 22.00D;
            value2 = 7.00D;
            result = client.Divide(value1, value2);
            Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);

            // Step 3: Close the client to gracefully close the connection and clean up resources.
            Console.WriteLine("\nPress <Enter> to terminate the client.");
            Console.ReadLine();
            client.Close();
        }
    }
}
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports GettingStartedClient.ServiceReference1

Module Module1

    Sub Main()
        ' Step 1: Create an instance of the WCF proxy.
        Dim Client As New CalculatorClient()

        ' Step 2: Call the service operations.
        ' Call the Add service operation.
        Dim value1 As Double = 100D
        Dim value2 As Double = 15.99D
        Dim result As Double = Client.Add(value1, value2)
        Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result)

        ' Call the Subtract service operation.
        value1 = 145D
        value2 = 76.54D
        result = Client.Subtract(value1, value2)
        Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result)

        ' Call the Multiply service operation.
        value1 = 9D
        value2 = 81.25D
        result = Client.Multiply(value1, value2)
        Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result)

        ' Call the Divide service operation.
        value1 = 22D
        value2 = 7D
        result = Client.Divide(value1, value2)
        Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result)

        ' Step 3: Close the client to gracefully close the connection and clean up resources.
        Console.WriteLine()
        Console.WriteLine("Press <Enter> to terminate the client.")
        Console.ReadLine()
        Client.Close()

    End Sub

End Module

请注意导入 GettingStartedClient.ServiceReference1using(对于 Visual C#)或 Imports(对于 Visual Basic)语句。 此语句导入 Visual Studio 使用“添加服务引用”功能生成的代码。 该代码将 WCF 代理实例化,并调用计算器服务公开的每个服务操作。 然后,它会关闭代理并结束程序。

对 WCF 客户端进行测试

从 Visual Studio 中对应用程序进行测试

  1. 保存并生成解决方案。

  2. 选择“GettingStartedClient”文件夹,然后从快捷菜单中选择“设为启动项目”。

  3. 在“启动项目”中,从下拉列表中选择“GettingStartedClient”,然后选择“运行”或按 F5。

从命令提示符中对应用程序进行测试

  1. 以管理员角色打开命令提示符,然后导航到 Visual Studio 解决方案目录。

  2. 要启动服务,请输入 GettingStartedHost\bin\Debug\GettingStartedHost.exe。

  3. 要启动客户端,请打开另一个命令提示符,导航到 Visual Studio 解决方案目录,然后输入 GettingStartedClient\bin\Debug\GettingStartedClient.exe。

    GettingStartedHost.exe 将生成以下输出:

    The service is ready.
    Press <Enter> to terminate the service.
    
    Received Add(100,15.99)
    Return: 115.99
    Received Subtract(145,76.54)
    Return: 68.46
    Received Multiply(9,81.25)
    Return: 731.25
    Received Divide(22,7)
    Return: 3.14285714285714
    

    GettingStartedClient.exe 将生成以下输出:

    Add(100,15.99) = 115.99
    Subtract(145,76.54) = 68.46
    Multiply(9,81.25) = 731.25
    Divide(22,7) = 3.14285714285714
    
    Press <Enter> to terminate the client.
    

后续步骤

现已完成 WCF 入门教程中的所有任务。 在本教程中,你了解了如何执行以下操作:

本教程介绍如何执行下列操作:

  • 添加代码以使用 WCF 客户端。
  • 对 WCF 客户端进行测试。

如果在任何步骤遇到问题或错误,请按照故障排除文章中的步骤进行修复。