教程:使用 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.ServiceReference1
的 using
(对于 Visual C#)或 Imports
(对于 Visual Basic)语句。 此语句导入 Visual Studio 使用“添加服务引用”功能生成的代码。 该代码将 WCF 代理实例化,并调用计算器服务公开的每个服务操作。 然后,它会关闭代理并结束程序。
对 WCF 客户端进行测试
从 Visual Studio 中对应用程序进行测试
保存并生成解决方案。
选择“GettingStartedClient”文件夹,然后从快捷菜单中选择“设为启动项目”。
在“启动项目”中,从下拉列表中选择“GettingStartedClient”,然后选择“运行”或按 F5。
从命令提示符中对应用程序进行测试
以管理员角色打开命令提示符,然后导航到 Visual Studio 解决方案目录。
要启动服务,请输入 GettingStartedHost\bin\Debug\GettingStartedHost.exe。
要启动客户端,请打开另一个命令提示符,导航到 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 客户端进行测试。
如果在任何步骤遇到问题或错误,请按照故障排除文章中的步骤进行修复。