您现在的位置: IT专家网 > WinSystem子站 > 评论分析
Visual Studio 2008中WCF的新增功能
Visual Studio 2008可自动执行WCF手动任务,包括更新代理引用和消除重复任务(例如创建简单托管项目)。在本专栏中,我将逐步介绍其新功能及优势,并对其任何缺陷和解决方法做出解释……
[OperationContract] |
类似地,“Response”(响应)窗格将包含所有返回的复合值或输出参数。这样我们发现了 WcfTestClient 的一个缺陷:为了指定要测试的不同服务,您必须先关闭,并在更改命令行参数后重新启动 WcfTestClient。如果能同时在 GUI 中提供服务地址,则可能会很好地缓解这个问题。
您可以直接将 WcfTestClient 集成到您的 Visual Studio 2008 解决方案中。首先,将类库项目添加到解决方案,并删除所有引用、文件夹和源文件(因为您不需要这些项)。然后,将 WcfTestClient.exe 设置为外部启动程序,并提供一个或多个测试服务的一个或多个元数据地址,例如 IIS 或 WAS 托管项目的 .svc 地址,或者就此而言,解决方案内部或外部主机项目的任何其他元数据地址。
请注意,如果计算机上只安装了 .NET Framework 3.0,则您不能在其上使用 WcfTestClient,因为 WcfTestClient 需要使用内部 .NET Framework 3.5 树网格控件(用于表示复合参数的控件)。
当然,您可以在一个步骤中结合 WcfTestClient 和 WcfSvcHost,这样即可自动托管服务库中的服务并对其进行测试:
WcfSvcHost.exe /service:MyService.dll /config:App.config
/client:WcfTestClient.exe
/clientArgs:http://localhost:9000/
但是,可以使用 WcfSvcHost 指定元数据参数。默认情况下,WcfSvcHost 将向指定客户端应用程序传送它在服务 .config 文件中找到的元数据地址。仅当服务未提供自己的元数据或您希望测试客户端使用其他地址时,才应显式指定元数据地址。此外,如果服务 .config 文件包含给定服务的多个元数据终结点,则这些终结点将按以下优先顺序提供:HTTP、TCP、IPC 和 HTTP-GET。您可以在 Visual Studio 2008 中合并这些步骤以进行无缝托管和测试体验。将 WcfSvcHost.exe 指定为启动程序,并将 .config 文件和 WcfTestClient.exe 指定为客户端。
WCF 服务库
作为 Target Framework 的一项功能,Visual Studio 2008 提供了多个新的 WCF 项目模板。通过“New Project”(新建项目)对话框中的组合框,您可以指定 Target Framework 的版本(2.0、3.0 或 3.5),如图 6 所示。

图6:WCF 项目模板
如果选择 Framework 2.0,则没有任何新模板可用。Framework 3.0 中提供了一个称为 WCF 服务库的新项目模板。此项目类型只是 WcfSvcHost 和 WcfTestClient 的预构建用法,与我前面提到的技术(将两者合二为一)非常类似。请注意,使用 WCF 服务库模板,就不需要将 WcfSvcHost.exe 指定为启动程序或 .config 文件,因为项目文件包含适用于 WCF 服务库的新 ProjectTypeGuids 元素。
- 本文关键词:

