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:键 或 /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> 元素且包含 true 或 false。 |
/order |
在粒子成员上生成显式顺序标识符。 |
/o[ut]:文件名 或 目录名 |
指定用于保存所生成的代理代码的文件(或目录)。 也可以指定要在其中创建此文件的目录。 该工具将从 XML Web services 名称来导出默认的文件名。 该工具将生成的数据集保存在不同的文件中。 使用 /parameters 选项时,此值为 <out> 元素且包含一个字符串。 |
/parameters |
从指定的 XML 文件中读取命令行选项。 使用此选项,一次可向 Wsdl.exe 工具传递大量选项。 此选项的缩写形式为 /par:。 选项元素包含在 <wsdlParameters xmlns="https://microsoft.com/webReference/"> 元素内。 有关详细信息,请参见“备注”部分。 |
/parsableerrors |
以类似于语言编译器所使用的错误报告格式显示错误。 使用 /parameters 选项时,此值为 <parsableerrors> 元素,它可以是 true 或 false。 |
/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> 元素,它可以是 true 或 false。 |
/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>
请参见
参考
概念
创建 XML Web services 代理
XML Web services 说明
XML Web services 概述
其他资源
.NET Framework Tools
SDK Command Prompt
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。