如何:创建 Windows Communication Foundation 客户端

这是创建基本 Windows Communication Foundation (WCF) 服务和可以调用该服务的客户端所需的六项任务中的第四项任务。有关全部六项任务的概述,请参见入门教程主题。

本主题描述如何检索 WCF 服务中的元数据,以及如何使用这些元数据创建可以访问该服务的 WCF 代理。此任务是通过使用 WCF 所提供的 ServiceModel Metadata Utility Tool (Svcutil.exe) 完成的。此工具可以获取服务的元数据,并使用所选语言生成代理的托管源代码文件。除了创建客户端代理外,该工具还会为客户端创建配置文件,以使客户端应用程序能够连接至其某个终结点上的服务。

客户端应用程序会使用生成的代理创建 WCF 客户端对象。如何:使用 Windows Communication Foundation 客户端中对此过程进行了描述。

在操作过程后面的示例中提供了用于此任务产生的客户端的代码。

创建 Windows Communication Foundation 客户端

  1. 通过执行以下步骤,在 中在当前解决方案中为客户端创建一个新项目:

    1. 在包含该服务的同一解决方案中的**“解决方案资源管理器”(位于右上角)中,右击当前解决方案(而不是项目),选择“添加”,然后选择“新项目”**。
    2. 在**“添加新项目”对话框中,选择“Visual Basic”“Visual C#”,选择“控制台应用程序”**模板,然后将其命名为 Client。使用默认的位置。
    3. 单击**“确定”**。
  2. 为项目添加对 System.ServiceModel.dll 的引用:

    1. 在**“解决方案资源管理器”中的“Client”项目下右击“引用”文件夹,然后选择“添加引用”**。
    2. 选择**“最近”选项卡,并从列表框选择“System.ServiceModel.dll”,然后单击“确定”。因为已在本教程的第一步添加了对该程序集的引用,所以该程序集现在列在“最近”选项卡中。如果在“最近”选项卡中看不到该程序集,请选择“浏览”**选项卡并导航至 C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation,然后从这里选择该程序集。

    提示

    在使用命令行编译器(例如 Csc.exe 或 Vbc.exe)时,还必须提供程序集的路径。例如,在运行 Windows Vista 的计算机上,默认情况下的路径为:Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation。

  3. 在生成的 Program.cs 或 Program.vb 文件中为 System.ServiceModel 命名空间添加一个 using 语句(在 Visual Basic 中为 Imports)。

    Imports System.ServiceModel;
    
    using System.ServiceModel;
    
  4. 启动在前面的步骤中创建的服务。有关更多信息,请参见 如何:承载和运行基本的 Windows Communication Foundation 服务

  5. 通过执行以下步骤,使用适当的开关运行Service Model Metadata Utility Tool (SvcUtil.exe) 以创建客户端代码和配置文件:

    1. 通过选择**“开始”菜单中的“Microsoft Windows SDK”项下的“CMD Shell”**,启动 Windows SDK 控制台会话。

    2. 导航到要放置客户端代码的目录。如果创建该客户端项目时使用了默认设置,则目录为 C:\Users\<用户名>\Documents\Visual Studio 2005\Projects\Service\Client。

    3. 将命令行工具Service Model Metadata Utility Tool (SvcUtil.exe) 与适当的开关一起使用以创建客户端代码。下面的示例生成服务的代码文件和配置文件。
      [Visual Basic]

      svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config https://localhost:8000/ServiceModelSamples/service
      

      [C#]

      svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config https://localhost:8000/ServiceModelSamples/service
      

      默认情况下,将在一个以服务命名的文件(例如,在本示例中将为 CalculatorService.cs 或 CalculatorService.vb,其扩展名与编程语言相对应:.vb 对应于 Visual Basic,.cs 对应于 C#)中生成客户端代理代码。/out 开关会将客户端代理文件的名称更改为 generatedProxy.cs。/config 开关会将客户端配置文件的名称从默认的 output.config 更改为 app.config。请注意,这两个文件都是在 C:\Users\<用户名>\Documents\Visual Studio 2005\Projects\Service\Client 目录中生成的。

  6. 在 Visual Studio 中将生成的代理添加到该客户端项目中,方法是在**“解决方案资源管理器”中右击该客户端项目,选择“添加”,然后选择“现有项”**。然后选择在上一步中生成的 generatedProxy.cs 文件。

示例

此示例演示由Service Model Metadata Utility Tool (Svcutil.exe) 生成的客户端代码。

现在您已经创建了一个 Windows Communication Foundation (WCF) 客户端。请继续执行如何:配置基本 Windows Communication Foundation 客户端中的步骤配置该客户端。有关疑难解答信息,请参见入门教程疑难解答

另请参见

任务

如何:使用配置文件发布服务的元数据
如何:使用 Svcutil.exe 下载元数据文档

其他资源

Service Model Metadata Utility Tool (Svcutil.exe)
Getting Started Sample
Self-Host