您的位置:首页 > 其它

如何:创建 Windows Communication Foundation 客户端[msdn]

2009-12-09 11:07 447 查看
如何:创建 Windows Communication Foundation 客户端

这是创建基本 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。
在生成的 Program.cs 或 Program.vb 文件中为 System.ServiceModel 命名空间添加一个 using 语句(在 Visual Basic 中为 Imports)。

Visual Basic

[align=center][/align]复制代码
Imports System.ServiceModel;


C#

[align=center][/align]复制代码
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]

[align=center][/align]复制代码
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/ServiceModelSamples/service[/code][C#] 
[align=center][/align]复制代码
svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceModelSamples/service[/code]默认情况下,将在一个以服务命名的文件(例如,在本示例中将为 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 目录中生成的。

在 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐