通道處理站

本範例示範用戶端應用程式如何使用 ChannelFactory 類別而非使用產生的用戶端來建立通道。這個範例是以實作計算機服務的使用者入門範例為基礎。

ms751400.note(zh-tw,VS.90).gif注意:
此範例的安裝程序與建置指示位於本主題的結尾。

此範例使用 ChannelFactory 類別來建立服務端點的通道。一般來說,若要建立服務端點的通道,您必須使用 Service Model Metadata Utility Tool (Svcutil.exe) 來產生用戶端類型,並為產生的類型建立執行個體。您也可以使用 ChannelFactory 類別來建立通道,如此範例所示。下列程式碼範例所建立的服務,與使用者入門範例中的服務一模一樣。

EndpointAddress address = new EndpointAddress("https://localhost/servicemodelsamples/service.svc");
WSHttpBinding binding = new WSHttpBinding();
ChannelFactory<ICalculator> factory = new 
                    ChannelFactory<ICalculator>(binding, address);
ICalculator channel = factory.CreateChannel();
ms751400.Important(zh-tw,VS.90).gif 注意:
如果您是在跨電腦的情況中執行此範例,必須使用正在執行服務的電腦完整名稱來取代先前程式碼中的 "localhost"。此範例不會使用組態來設定端點位址,因此必須透過程式碼來完成。

一旦建立了通道,即可透過叫用已產生用戶端的相同方式來叫用服務作業。

// Call the Add service operation.
double value1 = 100.00D;
double value2 = 15.99D;
double result = channel.Add(value1, value2);
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

若要關閉通道,必須先將通道轉換為 IClientChannel 介面。這是因為產生的通道會使用 ICalculator 介面在用戶端應用程式中宣告,且使用的方法與 AddSubtract 類似,但和 Close 不同。Close 方法源自 ICommunicationObject 介面。

// Close the channel.
 ((IClientChannel)client).Close();

當您執行範例時,作業要求和回應會顯示在用戶端主控台視窗中。在用戶端視窗中按 ENTER 鍵,關閉用戶端應用程式。

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

若要設定、建置及執行範例

  1. 請確定您已執行 Windows Communication Foundation 範例的單次安裝程序

  2. 若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循建置 Windows Communication Foundation 範例中的指示。請注意,此範例不會啟用中繼資料發行。您必須先為此範例啟用中繼資料發行,以重新產生用戶端類型。

  3. 若要在單一或跨電腦的組態中執行本範例,請遵循執行 Windows Communication Foundation 範例中的指示。

若要執行跨電腦範例

  1. 請使用正在執行服務的電腦完整名稱來取代下列程式碼中的 "localhost"。

    EndpointAddress address = new EndpointAddress("https://localhost/servicemodelsamples/service.svc");
    

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.