Web 服務描述語言工具 (Wsdl.exe)
Web 服務描述語言工具會從 WSDL 合約檔案、XSD 結構描述 (Schema) 和 .discomap 探索文件產生 XML Web Service 和 XML Web Service 用戶端的程式碼。
wsdl [options] {URL | path}
引數 | 描述 |
---|---|
URL |
WSDL 約定檔案 (.wsdl)、XSD 結構描述檔案 (.xsd) 或探索文件 (.disco) 的 URL。請注意,您不能指定 .discomap 探索文件的 URL。 |
路徑 |
本機 WSDL 約定檔案 (.wsdl)、XSD 結構描述檔案 (.xsd) 或探索文件 (.disco 或 .discomap) 的路徑。 |
選項 | 描述 |
---|---|
/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> 項目,並且包含 true 或 false。 |
/order |
在物件成員上產生明確順序識別項。 |
/o[ut]:filename or directoryname |
指定儲存所產生之 Proxy 程式碼的檔案 (或目錄)。您也可以指定要在其中建立此檔案的目錄。這個工具會從 XML Web Service 名稱衍生預設檔名。這個工具會將產生的 DataSet 儲存在不同的檔案中。使用 /parameters 選項時,這個值是 <out> 項目,並且包含字串。 |
/parameters |
從指定的 xml 檔案中讀取命令列選項,使用此選項,對 Wsdl.exe 工具一次傳遞大量的選項。簡短形式為 '/par:'。選項項目包含在 <wsdlParameters xmlns="https://microsoft.com/webReference/"> 項目內。如需詳細資訊,請參閱<備註>小節。 |
/parsableerrors |
以和語言編譯器所使用的錯誤報告格式類似的格式顯示錯誤。使用 /parameters 選項時,這個值是 <parsableerrors> 項目,並且是 true 或 false。 |
/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 選項時,這個值是包含 "servicerInterface" 的 <style> 項目。 |
/sharetypes |
開啟型別共用功能。這個功能會針對不同服務 (命名空間、名稱和連線簽章必須相同) 之間共用的相同型別,利用單一型別定義建立一個程式碼檔案。請使用 "http://" URL 做為命令列參數來參考這些服務,或是為本機檔案建立 discomap 文件。使用 /parameters 選項時,這個值是 <sharetypes> 項目,並且是 true 或 false。 |
/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>
請參閱
參考
.NET Framework 工具
Web 服務探索工具 (Disco.exe)
SDK 命令提示字元
概念
建立 XML Web Service Proxy
XML Web Service 描述
XML Web Service 概觀