如何: 變更用於使用 Wsdl.exe 產生的 Proxy 類別的型別

文章翻譯 文章翻譯
文章編號: 326790 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Web 服務描述語言工具 (Wsdl.exe) 會產生的 XML Web 服務的 Proxy 程式碼。產生的 Proxy 類別中所使用的型別根據說明 XML Web 服務的 WSDL 文件的內容。但是,您想要也不您預期,可能不是產生的型別。

Wsdl.exe 決定最佳的產生要使用的服務描述中所指定的物件型別。在某些情況下這個工具會使用以最少共同要素的方法的型別轉型 (Casting) 物件。中一個 WebMethod 了 陣列清單 的參數,例如述 WSDL 為 XML 結構描述 (XSD) 序列。當 Wsdl.exe 在服務描述 Wsdl.exe 中找到此陣列描述,然後會產生 Proxy 類別,會使用物件陣列。 您可能想要使用一個 陣列清單,是原來的型別,用於 [WebMethod 中操作。如果您不想使用產生的型別,您可以變更產生的型別到更好的型別。若要適當物件型別可以開啟包含產生的 Proxy 類別的檔案、 手動變更 [產生的方法] 參數,然後再回到適當物件型別中的型別。

產生 Proxy 程式碼

在下面的範例 XML Web 服務有 Web 服務方法有下列的原型:
string DummyMethod(System.Collections.ArrayList intList)
				
您可以使用 Wsdl.exe 產生 Proxy 原始程式檔。

手動修改程式碼

  1. 在文字編輯器中開啟 Proxy 來源檔案。
  2. 尋找兩個方法:
            public string DummyMethod(object[] intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(object[] intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					
  3. 修改程式碼,以:
            public string DummyMethod(System.Collections.ArrayList intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(System.Collections.ArrayList intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					

更多的資訊

XML Web 服務序列化物件至 XML,然後還原序列化 XML 到物件。通常,特定型別的物件可序列化和還原序列化另一個相同類型的物件。不過,如果您使用不同類型,這可能無法運作。



?考

如需有關如何序列化和還原序列化類型的詳細資訊,請造訪下列 Microsoft 網站:
XML 與 SOAP 序列化
http://msdn.microsoft.com/library/?url=/library/en-us/cpguide/html/cpconserialization.asp?frame=true


屬性

文章編號: 326790 - 上次校閱: 2003年4月28日 - 版次: 4.1
這篇文章中的資訊適用於:
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
關鍵字:?
kbmt kbhowtomaster KB326790 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:326790
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com