如何:创建 Windows Communication Foundation 客户端[msdn]
这是创建基本 Windows Communication Foundation (WCF) 服务和可以调用该服务的客户端所需的六项任务中的第四项任务。有关全部六项任务的概述,请参见入门教程主题。
本主题描述如何检索 WCF 服务中的元数据,以及如何使用这些元数据创建可以访问该服务的 WCF 代理。此任务是通过使用 WCF 所提供的 ServiceModel Metadata Utility Tool (Svcutil.exe) 完成的。此工具可以获取服务的元数据,并使用所选语言生成代理的托管源代码文件。除了创建客户端代理外,该工具还会为客户端创建配置文件,以使客户端应用程序能够连接至其某个终结点上的服务。
客户端应用程序会使用生成的代理创建 WCF 客户端对象。如何:使用 Windows Communication Foundation 客户端中对此过程进行了描述。
在操作过程后面的示例中提供了用于此任务产生的客户端的代码。
创建 Windows Communication Foundation 客户端
-
通过执行以下步骤,在 中在当前解决方案中为客户端创建一个新项目:
- 在包含该服务的同一解决方案中的“解决方案资源管理器”(位于右上角)中,右击当前解决方案(而不是项目),选择“添加”,然后选择“新项目”。
- 在“添加新项目”对话框中,选择“Visual Basic”或“Visual C#”,选择“控制台应用程序”模板,然后将其命名为 Client。使用默认的位置。
- 单击“确定”。
- 在包含该服务的同一解决方案中的“解决方案资源管理器”(位于右上角)中,右击当前解决方案(而不是项目),选择“添加”,然后选择“新项目”。
-
为项目添加对 System.ServiceModel.dll 的引用:
- 在“解决方案资源管理器”中的“Client”项目下右击“引用”文件夹,然后选择“添加引用”。
- 选择“最近”选项卡,并从列表框选择“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。 - 在“解决方案资源管理器”中的“Client”项目下右击“引用”文件夹,然后选择“添加引用”。
-
在生成的 Program.cs 或 Program.vb 文件中为 System.ServiceModel 命名空间添加一个 using 语句(在 Visual Basic 中为 Imports)。
Visual BasicImports System.ServiceModel;
C#using System.ServiceModel;
-
启动在前面的步骤中创建的服务。有关更多信息,请参见 如何:承载和运行基本的 Windows Communication Foundation 服务。
-
通过执行以下步骤,使用适当的开关运行Service Model Metadata Utility Tool (SvcUtil.exe) 以创建客户端代码和配置文件:
- 通过选择“开始”菜单中的“Microsoft Windows SDK”项下的“CMD Shell”,启动 Windows SDK 控制台会话。
- 导航到要放置客户端代码的目录。如果创建该客户端项目时使用了默认设置,则目录为 C:\Users\<用户名>\Documents\Visual Studio 2005\Projects\Service\Client。
- 将命令行工具Service Model Metadata Utility Tool (SvcUtil.exe) 与适当的开关一起使用以创建客户端代码。下面的示例生成服务的代码文件和配置文件。
[Visual Basic]
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/ServiceModelSamples/service
svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceModelSamples/service
- 通过选择“开始”菜单中的“Microsoft Windows SDK”项下的“CMD Shell”,启动 Windows SDK 控制台会话。
-
在 Visual Studio 中将生成的代理添加到该客户端项目中,方法是在“解决方案资源管理器”中右击该客户端项目,选择“添加”,然后选择“现有项”。然后选择在上一步中生成的 generatedProxy.cs 文件。
示例
此示例演示由Service Model Metadata Utility Tool (Svcutil.exe) 生成的客户端代码。
现在您已经创建了一个 Windows Communication Foundation (WCF) 客户端。请继续执行如何:配置基本 Windows Communication Foundation 客户端中的步骤配置该客户端。有关疑难解答信息,请参见入门教程疑难解答。