Web 服务描述语言工具 (Wsdl.exe)

本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.

Web 服务描述语言工具从 WSDL 协定文件、XSD 架构和 .discomap 发现文档为 XML Web services 和 XML Web services 客户端生成代码。

7h3ystb6.note(zh-cn,VS.100).gif注意:
WSDL.exe 可能会生成其名称类似于“@string”的类。这些是使用“@”前缀的有效类型名称,旨在允许使用包含 C# 关键字的类型名称。

wsdl [options] {URL | path}

备注

参数 说明

URL

指向 WSDL 协定文件 (.wsdl)、XSD 架构文件 (.xsd) 或发现文档 (.disco) 的 URL。请注意,您不能将 URL 指定为 .discomap 发现文档。

Path

本地 WSDL 协定文件 (.wsdl)、XSD 架构文件 (.xsd) 或发现文档(.disco 或 .discomap)的路径。

7h3ystb6.note(zh-cn,VS.100).gif注意:
在给定本地文件时,Wsdl.exe 不会检索网络上包含和导入的内容。若要使 Wsdl.exe 可以在处理本地文件的同时检索网络资源,请传递本地文件的 URL。例如,以下文件使用网络检索必需的资源: wsdl File:///E:/Customers/WSDLS/Accounts.wsdl /out:proxy.cs

选项 说明

/appsettingurlkey:

/urlkey:

指定在生成代码时用于读取 URL 属性的默认值的配置键。使用 /parameters 选项时,此值为 <appSettingUrlKey> 元素且包含一个字符串。

/appsettingbaseurl:基 URL

/baseurl:基 URL

指定计算 URL 片段时所使用的基 URL。该工具通过将相对 URL 从 基 URL 参数转换为 WSDL 文档中的 URL 来计算 URL 片断。使用此选项时,必须指定 /appsettingurlkey 选项。使用 /parameters 选项时,此值为 <appSettingBaseUrl> 元素且包含一个字符串。

/d[omain]:

指定连接到要求身份验证的服务器时要使用的域名。使用 /parameters 选项时,此值为 <domain> 元素且包含一个字符串。

/l[anguage]:语言

指定用于所生成的代理类的语言。您可以指定 CS(C#;默认)、VB (Visual Basic)、JS (Jscript) 或 VJS (Visual J#) 作为语言参数。还可以指定实现 System.CodeDom.Compiler.CodeDomProvider 类的类的完全限定名称。使用 /parameters 选项时,此值为 <language> 元素且包含一个字符串。

/n[amespace]:命名空间

指定所生成的代理或模板的命名空间。默认命名空间是全局命名空间。使用 /parameters 选项时,此值为 <namespace> 元素且包含一个字符串。此元素必须在参数文件中。

/nologo

取消显示 Microsoft 启动版权标志。使用 /parameters 选项时,此值为 <nologo> 元素且包含 truefalse

/order

在粒子成员上生成显式顺序标识符。

/o[ut]:文件名目录名

指定用于保存所生成的代理代码的文件(或目录)。也可以指定要在其中创建此文件的目录。该工具将从 XML Web services 名称来导出默认的文件名。该工具将生成的数据集保存在不同的文件中。使用 /parameters 选项时,此值为 <out> 元素且包含一个字符串。

/parameters

从指定的 XML 文件中读取命令行选项。使用此选项,一次可向 Wsdl.exe 工具传递大量选项。此选项的缩写形式为 /par:。选项元素包含在 <wsdlParameters xmlns="https://microsoft.com/webReference/"> 元素内。有关详细信息,请参见“备注”部分。

/parsableerrors

以类似于语言编译器所使用的错误报告格式显示错误。使用 /parameters 选项时,此值为 <parsableerrors> 元素,它可以是 truefalse

/p[assword]:密码

指定连接到要求身份验证的服务器时要使用的密码。使用 /parameters 选项时,此值为 <password> 元素且包含一个字符串。

/protocol:协议

指定要实现的协议。可以指定 SOAP(默认值)、HttpGet、HttpPost 或在配置文件中指定的自定义协议。使用 /parameters 选项时,此值为 <protocol> 元素且包含一个字符串。

/proxy:URL

指定用于 HTTP 请求的代理服务器的 URL。默认为使用系统代理设置。使用 /parameters 选项时,此值为 <proxy> 元素且包含一个字符串。

/proxydomain:

/pd:

指定连接到要求身份验证的代理服务器时要使用的域。使用 /parameters 选项时,此值为 <proxydomain> 元素且包含一个字符串。

/proxypassword:密码

/pp:密码

指定当连接到要求身份验证的代理服务器时要使用的密码。使用 /parameters 选项时,此值为 <proxypassword> 元素且包含一个字符串。

/proxyusername:用户名

/pu:用户名

指定连接到要求身份验证的代理服务器时要使用的用户名。使用 /parameters 选项时,此值为 <proxyusername> 元素且包含一个字符串。

/server

根据协定生成 XML Web services 的抽象类。默认为生成客户端代理类。使用 /parameters 选项时,此值为 <style> 元素且包含“server”。

/serverInterface

为 ASP.NET Web 服务的服务器实现生成接口。为 WSDL 文档中的每个绑定生成一个接口。WSDL 单独实现 WSDL 协定(实现接口的类不应在类方法中包括以下任一特性:更改 WSDL 协定的 Web 服务特性或序列化特性)。此选项的缩写形式为 /si。使用 /parameters 选项时,此值为 <style> 元素且包含“serverInterface”。

/sharetypes

启用类型共享功能。此功能使用一个类型定义,为不同服务所共享的相同类型创建一个代码文件(命名空间、名称和连网签名必须相同)。引用具有“http://”URL 的服务作为命令行参数,或为本地文件创建一个 discomap 文档。使用 /parameters 选项时,此值为 <sharetypes> 元素,它可以是 truefalse

/u[sername]:用户名

指定连接到要求身份验证的服务器时要使用的用户名。使用 /parameters 选项时,此值为 <username> 元素且包含一个字符串。

/?

显示该工具的命令语法和选项。

.wsdl 文件是一个使用称作 Web 服务描述语言 (WSDL) 的 XML 语法编写的 XML 文档。此文件定义 XML Web services 的行为方式并指示客户端如何与该服务交互。

可以使用 Web 服务发现工具 (Disco.exe) 获得 XML Web services 的发现文档。由此工具生成的 .discomap、.disco、.wsdl 和 .xsd 文件可以用作 Wsdl.exe 的输入。

当您使用 Wsdl.exe 创建代理类时,将用指定的编程语言创建一个源文件。在为代理类生成源代码的过程中,该工具确定服务说明中指定的对象最适用的类型。在某些情况下,该工具使用最小公分母方法将这些对象强制转换为某个类型。因此,代理类中的生成类型可能不是开发人员想要或预期的类型。例如,当 Wsdl.exe 遇到服务说明中的 ArrayList 类型时,它会在生成的代理类中创建一个 Object 数组。若要确保对象类型强制转换正确,请打开包含生成的代理类的文件,然后将所有不正确的对象类型更改成所需的对象类型。

  • / parameters 选项指定一个文件,该文件包含与大多数命令提示符选项相对应的元素。有些命令提示符选项只以 /parameters 文件格式提供。

/ parameters 选项接受的 XML 文件格式是外部 <wsdlParameters xmlns="https://microsoft.com/webReference/"> 元素内的一系列元素。如果指定了命令提示符值,并且使用了包含不同选项或值的 /parameters 文件,则使用在命令提示符处指定的值。<wsdlParameters xmlns="https://microsoft.com/webReference/"> 元素必须包含一个 <nologo> 元素、一个 <parsableerrors> 元素和一个 <sharetypes> 元素。

多个选项作为 <webReferenceOptions> 元素(必须包含一个 <verbose> 元素)的子元素传递。<webReferenceOptions> 的其他子元素为:

  • <style>. 包含“client”、“server”或“serverInterface”。

  • <schemaImporterExtension>. 包含任意数量的 <type> 元素。

  • <codeGenerationOptions>. 可接受下列字符串的集合(由空格分隔)。

  • “properties”

  • “newAsync”

  • “oldAsync”

  • “order”

  • “enableDataBinding”

请参见下面的“示例”部分,以获取 /parameters 选项的一些演示。

示例

下面的命令用 C# 语言创建 XML Web services 的客户端代理类。

wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

下面的命令用 C# 语言为位于指定 URL 处的 XML Web services 创建客户端代理类。该工具将客户端代理类保存在 myProxyClass.cs 文件中。

wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

下面的命令用 Microsoft Visual Basic 语言为位于指定 URL 处的 XML Web services 创建客户端代理类。该工具将客户端代理类保存在 myProxyClass.vb 文件中。

wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

下面的代码示例演示一个基本的 /parameters WSDL 文件,其中只编写了可在命令提示符处与 URL 参数结合使用的必需元素。

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
</wsdlParameters>

WSDL 文档是通过 <documents> 元素添加到 /parameters WSDL 文件中的,如下面的代码示例所示。在 <documents> 元素中可以使用任意数目的 <document> 元素。

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>https://www.contoso.com/service.asmx?WSDL</document>
  </documents>
</wsdlParameters>

下面的 /parameters WSDL 文件演示 <webReferenceOptions> 元素内的 <codeGenerationOptions> 和 <style> 元素的用法。在本示例中,文件在代理代码中启用了新的数据绑定样式,并指定了一个架构导入程序扩展。在此扩展中,输出不显示详细信息,客户端代理由 Wsdl.exe 创建。

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>https://www.contoso.com/service.asmx?WSDL</document>
  </documents>
  <webReferenceOptions>
    <verbose>false</verbose>
    <codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
    <schemaImporterExtension>
      <type>MyNamespace.MyCustomImporterExtension,ExtensionLibrary</type>
    </schemaImporterExtensions>
    <style>client</style>
  </webReferenceOptions>
</wsdlParameters>

另请参见

参考

Web 服务发现工具 (Disco.exe)

概念

创建 XML Web services 代理
XML Web services 说明
XML Web services 概述

其他资源

.NET Framework Tools
SDK Command Prompt