Web 服務描述語言工具 (Wsdl.exe)

本主題專門說明舊有技術。 應該使用下列建立 XML Web Service 及 XML Web Service 用戶端: Windows Communication Foundation.

Web 服務描述語言工具會從 WSDL 合約檔案、XSD 結構描述 (Schema) 和 .discomap 探索文件產生 XML Web Service 和 XML Web Service 用戶端的程式碼。

7h3ystb6.note(zh-tw,VS.100).gif注意:
WSDL.exe 可能產生名稱類似 “@string” 的類別。這些是有效的型別名稱,使用 ‘@’ 前置字元允許包含 C# 關鍵字的型別名稱。

wsdl [options] {URL | path}

備註

引數 說明

URL

WSDL 約定檔案 (.wsdl)、XSD 結構描述檔案 (.xsd) 或探索文件 (.disco) 的 URL。請注意,您不能指定 .discomap 探索文件的 URL。

路徑

本機 WSDL 合約檔案 (.wsdl)、XSD 結構描述檔案 (.xsd) 或探索文件 (.disco 或 .discomap) 的路徑。

7h3ystb6.note(zh-tw,VS.100).gif注意:
提供本機檔案時,Wsdl.exe 不會從網路擷取 Include 和 Import。若要讓 Wsdl.exe 在處理本機檔案時能擷取網路資源,請將 URL 傳遞至本機檔案。例如,下列檔案會使用網路來擷取必要資源: wsdl File:///E:/Customers/WSDLS/Accounts.wsdl /out:proxy.cs

選項 描述

/appsettingurlkey:key

/urlkey:key

指定在產生程式碼時要用來讀取 URL 屬性預設值的組態機碼。使用 /parameters 選項時,這個值是 <appSettingUrlKey> 項目,並且包含字串。

/appsettingbaseurl:baseurl

/baseurl:baseurl

指定計算 URL 片段時要使用的基礎 URL。這個工具會從 WSDL 文件中 URL 的 baseurl 引數轉換相對 URL,以計算 URL 片段。您必須以這個選項指定 /appsettingurlkey 選項。使用 /parameters 選項時,這個值是 <appSettingBaseUrl> 項目,並且包含字串。

/d[omain]:domain

指定在連接至要求驗證 (Authentication) 的伺服器時,所要使用的網域名稱。使用 /parameters 選項時,這個值是 <domain> 項目,並且包含字串。

/l[anguage]:language

指定所產生的 Proxy 類別要使用的語言。您可以指定 CS (C#;預設)、VB (Visual Basic)、JS (JScript) 或 VJS (Visual J#) 做為語言引數。您也可以指定實作 System.CodeDom.Compiler.CodeDomProvider 類別的完整類別名稱。使用 /parameters 選項時,這個值是 <language> 項目,並且包含字串。

/n[amespace]:namespace

指定所產生之 Proxy 或樣板 (Template) 的命名空間。預設命名空間為全域命名空間。使用 /parameters 選項時,這個值是 <namespace> 項目,並且包含字串。這個項目必須在參數檔中。

/nologo

隱藏 Microsoft 程式啟始資訊顯示。使用 /parameters 選項時,這個值是 <nologo> 項目,並且包含 truefalse

/order

在物件成員上產生明確順序識別項。

/o[ut]:filenamedirectoryname

指定儲存所產生之 Proxy 程式碼的檔案 (或目錄)。您也可以指定要在其中建立此檔案的目錄。這個工具會從 XML Web Service 名稱衍生預設檔名。這個工具會將產生的資料集儲存在不同的檔案中。使用 /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 (預設)、HttpGet、HttpPost,或是在組態檔中指定的自訂通訊協定。使用 /parameters 選項時,這個值是 <protocol> 項目,並且包含字串。

/proxy:URL

指定要使用於 HTTP 要求的 Proxy 伺服器的 URL。預設為使用系統 Proxy 設定。使用 /parameters 選項時,這個值是 <proxy> 項目,並且包含字串。

/proxydomain:domain

/pd:domain

指定在連接至要求驗證的 Proxy 伺服器時,所要使用的網域。使用 /parameters 選項時,這個值是 <proxydomain> 項目,並且包含字串。

/proxypassword:password

/pp:password

指定在連接至要求驗證的 Proxy 伺服器時,所要使用的密碼。使用 /parameters 選項時,這個值是 <proxypassword> 項目,並且包含字串。

/proxyusername:username

/pu:username

指定在連接至要求驗證的 Proxy 伺服器時,所要使用的使用者名稱。使用 /parameters 選項時,這個值是 <proxyusername> 項目,並且包含字串。

/server

依據約定產生 XML Web Service 的抽象類別 (Abstract Class)。預設會產生用戶端 Proxy 類別。使用 /parameters 選項時,這個值是包含 "server" 的 <style> 項目。

/serverInterface

為 ASP.Net Web 服務的伺服器實作產生介面。介面是針對 WSDL 文件中的每個繫結產生的。WSDL 可以獨力實作 WSDL 合約 (實作介面的類別不能包括下列兩個類別方法:變更 WSDL 合約的 Web Service 屬性 (Attribute) 或 Serialization 屬性),簡短形式為 /si。使用 /parameters 選項時,這個值是包含 "serverInterface" 的 <style> 項目。

/sharetypes

開啟型別共用功能。這個功能會針對不同服務 (命名空間、名稱和連線簽章必須相同) 之間共用的相同型別,利用單一型別定義建立一個程式碼檔案。請使用 "http://" URL 做為命令列參數來參考這些服務,或是為本機檔案建立 discomap 文件。使用 /parameters 選項時,這個值是 <sharetypes> 項目,並且是 truefalse

/u[sername]:username

指定在連接至要求驗證的伺服器時,所要使用的使用者名稱。使用 /parameters 選項時,這個值是 <username> 項目,並且包含字串。

/?

顯示工具的命令語法和選項。

.wsdl 檔案是以稱為 Web 服務描述語言 (WSDL) 的 XML 文法所撰寫的 XML 文件。這個檔案定義了 XML Web Service 的行為,並且指示用戶端如何與該服務互動。

您可以使用 Web 服務探索工具 (Disco.exe) 來取得 XML Web Service 的探索文件。由這個工具所產生的 .discomap、.disco、.wsdl 和 .xsd 檔案可以用作 Wsdl.exe 的輸入。

使用 Wsdl.exe 建立 Proxy 類別時,會以您所指定的程式設計語言建立單一資源檔。在為 Proxy 類別產生原始程式碼的過程中,工具會決定要對服務描述中所指定的物件使用的最佳型別。在某些情況下,工具會使用最小公因數的方法,將物件轉換為某個型別。因此,Proxy 類別中產生的型別可能會和開發人員想要或預期的不同。例如,當 Wsdl.exe 在服務描述中遇到 ArrayList 型別時,它會在產生的 Proxy 類別中建立 Object Array。若要確定正確的物件型別轉換 (Type Cast),請開啟包含產生之 Proxy 類別的檔案,並將所有不正確的物件型別變更為預期的物件型別。

  • / 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 Service 的用戶端 Proxy 類別。

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

以下命令會以 C# 語言,對位於指定 URL 的 XML Web Service 建立用戶端 Proxy 類別。工具會將用戶端 Proxy 類別儲存在 myProxyClass.cs 檔案中。

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

以下命令會以 Microsoft Visual Basic 語言,對位於指定 URL 的 XML Web Service 建立用戶端 Proxy 類別。工具會將用戶端 Proxy 類別儲存在 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>

使用 <documents> 項目在 /parameters WSDL 檔案中加入 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> 項目的方法。在此情況下,檔案可允許在 Proxy 程式碼中的新樣式資料繫結,並指定輸出並非詳細資訊且 Wsdl.exe 會用來建立用戶端 Proxy 的結構描述擴充匯入工具。

<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 Service Proxy
XML Web Service 描述
XML Web Service 概觀

其他資源

.NET Framework Tools
SDK Command Prompt