程式碼模型:以 Managed 程式碼存取 Web 服務
更新:2007 年 11 月
Web 服務用戶端是參考和使用 Web 服務的任何元件、服務或應用程式。請特別注意,Web 服務用戶端不一定是用戶端架構應用程式,如桌面應用程式;在大部分的情況下,您的 Web 服務用戶端可能是其他的 Web 應用程式或甚至是其他的 Web 服務。
存取以 Managed 程式碼建立的 Web 服務時,Proxy 類別及 .NET Framework 會處理所有的基礎結構程式碼。存取 Web 服務時請遵照這些基本步驟:
找到所要存取的 Web 服務。
透過將 Web 參考加入專案的方式,建立 Web 服務的 Proxy 類別。
藉由在用戶端程式碼中包含 Proxy 類別的命名空間以參考之。
在用戶端程式碼中建立 Web 服務 Proxy 類別的執行個體。
使用 Proxy 的方法存取 Web 服務。
如需詳細資訊,請參閱 HOW TO:以 Managed 程式碼存取 Web 服務或HOW TO:以 Managed 程式碼非同步存取 Web 服務。
找出 Web 服務和加入 Web 參考
若要簡化程式碼模型,以 Managed 程式碼所撰寫的應用程式會使用 Web 參考,以便在本機表示每個 Web 服務。使用 [加入 Web 參考] 對話方塊,將 Web 參考加入至您的專案。這個對話方塊支援瀏覽 Web 服務的 Web 位址。如需詳細資訊,請參閱找出 Web 服務和 Web 參考。
參考 Proxy 類別
產生的 Proxy 類別具有與之關聯的所屬命名空間,並且您必須將命名空間加入至用戶端應用程式,才能建立該類別的執行個體。如需詳細資訊,請參閱 using 指示詞 (C#) 或參考和 Imports 陳述式 (Visual Basic .NET)。
建立 Proxy 類別的執行個體
您必須先建立 Proxy 類別的執行個體,才能呼叫該類別的任何方法。此處理序與任何其他類別的執行個體的建立完全相同。如需詳細資訊,請參閱 new (C#) 或物件變數宣告 (Visual Basic .NET)。
使用 Proxy 存取 Web 服務
若要存取 Web 服務方法,您的用戶端應用程式會叫用 Proxy 物件的對應同步方法或非同步方法。接著,這些方法會進行透過連線遠端呼叫的必要工作,以呼叫所要的 Web 服務方法。依預設,Proxy 類別會使用 SOAP 存取 Web 服務方法,因為 SOAP 支援這三種受支援通訊協定 (HTTP-GET、HTTP-POST 及 HTTP-SOAP) 的各種資料型別集。如需詳細資訊,請參閱XML Web Service Wire 格式。
摘要
使用 Visual Studio 直接從 Web 服務的服務描述產生的 Proxy 類別,存取以 Managed 程式碼建立的 Web 服務是相當簡單的程序。Proxy 類別不會執行將方法呼叫轉換成要求訊息,以及將回應訊息轉換回傳回值的方法。
下圖顯示應用程式的關聯性,此應用程式會呼叫 Web 服務,接著呼叫另一個 Web 服務以獲得定價資訊。在這個範例中,取得現行價格 (Get Current Prices) Web 服務同時是 Web 服務提供者及 Web 服務消費者。
Web 服務用戶端和 Web 服務