通道處理站
ChannelFactory 範例示範用戶端應用程式如何使用 ChannelFactory 類別而非使用產生的用戶端來建立通道。 這個範例是以實作計算機服務的使用者入門範例為基礎。
注意
此範例的安裝程序與建置指示位於本主題的結尾。
此範例使用 ChannelFactory<TChannel> 類別來建立服務端點的通道。 一般來說,若要建立服務端點的通道,您必須使用 ServiceModel 中繼資料公用程式工具 (Svcutil.exe) 來產生用戶端類型,並為產生的類型建立執行個體。 您也可以使用 ChannelFactory<TChannel> 類別來建立通道,如此範例所示。 下列程式碼範例所建立的服務,與使用者入門中的服務一模一樣。
EndpointAddress address = new EndpointAddress("http://localhost/servicemodelsamples/service.svc");
WSHttpBinding binding = new WSHttpBinding();
ChannelFactory<ICalculator> factory = new
ChannelFactory<ICalculator>(binding, address);
ICalculator channel = factory.CreateChannel();
重要
如果您是在跨電腦的情況中執行此範例,必須使用正在執行服務的電腦完整名稱來取代先前程式碼中的 "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
介面在用戶端應用程式中宣告,且使用的方法與 Add
和 Subtract
類似,但和 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.
若要安裝、建置及執行範例
若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循 Building the Windows Communication Foundation Samples中的指示。 請注意,此範例不會啟用中繼資料發行。 您必須先為此範例啟用中繼資料發行,以重新產生用戶端類型。
若要在單一或多部電腦組態中執行此範例,請遵循執行 Windows Communication Foundation 範例中的指示進行。
若要執行跨電腦範例
請使用正在執行服務的電腦完整名稱來取代下列程式碼中的 "localhost"。
EndpointAddress address = new EndpointAddress("http://localhost/servicemodelsamples/service.svc");