Web 服務描述語言工具 (Wsdl.exe)
本主題專門說明舊有技術。 應該使用下列建立 XML Web Service 及 XML Web Service 用戶端: Windows Communication Foundation.
Web 服務描述語言工具會從 WSDL 合約檔案、XSD 結構描述 (Schema) 和 .discomap 探索文件產生 XML Web Service 和 XML Web Service 用戶端的程式碼。
注意: |
---|
WSDL.exe 可能產生名稱類似 “@string” 的類別。這些是有效的型別名稱,使用 ‘@’ 前置字元允許包含 C# 關鍵字的型別名稱。 |
wsdl [options] {URL | path}
備註
引數 | 說明 |
---|---|
URL |
WSDL 約定檔案 (.wsdl)、XSD 結構描述檔案 (.xsd) 或探索文件 (.disco) 的 URL。請注意,您不能指定 .discomap 探索文件的 URL。 |
路徑 |
本機 WSDL 合約檔案 (.wsdl)、XSD 結構描述檔案 (.xsd) 或探索文件 (.disco 或 .discomap) 的路徑。
注意:
提供本機檔案時,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> 項目,並且包含 true 或 false。 |
/order |
在物件成員上產生明確順序識別項。 |
/o[ut]:filename 或 directoryname |
指定儲存所產生之 Proxy 程式碼的檔案 (或目錄)。您也可以指定要在其中建立此檔案的目錄。這個工具會從 XML Web Service 名稱衍生預設檔名。這個工具會將產生的資料集儲存在不同的檔案中。使用 /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 選項時,這個值是包含 "serverInterface" 的 <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>
另請參閱
參考
概念
建立 XML Web Service Proxy
XML Web Service 描述
XML Web Service 概觀