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

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

wsdl [options] {URL | path}
参数 说明

URL

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

Path

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

选项 说明

/appsettingurlkey: key

/urlkey: key

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

/appsettingbaseurl: baseurl

/baseurl: baseurl

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

/d[omain]:domain

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

/l[anguage]:language

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

/n[amespace]:namespace

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

/nologo

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

/order

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

/o[ut]:filename 或 directoryname

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

/parameters

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

/parsableerrors

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

/p[assword]:password

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

/protocol: protocol

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

/proxy: URL

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

/proxydomain: domain

/pd: domain

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

/proxypassword: password

/pp: password

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

/proxyusername: username

/pu: username

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

/server

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

/serverInterface

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

/sharetypes

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

/u[sername]:username

指定连接到要求身份验证的服务器时要使用的用户名。使用 /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 类型时,它将在生成的代理类中创建一个对象数组。若要确保对象类型转换正确,请打开包含生成的代理类的文件,将所有不正确的对象类型更改成所需的对象类型。

  • /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>

请参见

参考

.NET Framework 工具
Web 服务发现工具 (Disco.exe)
SDK 命令提示

概念

创建 XML Web 服务代理
XML Web 服务描述
XML Web 服务概述