消費自託管WCF服務的整個過程,一步步地解釋以及充足的編碼和螢幕截圖是非常有必要。
第1步:服務託管,現在我們需要實現的代理類用戶端。建立代理的方式不同。
這三種方法,實現ClientBase<T>類是最好的做法。如果使用了兩個rest方法,需要建立一個代理類,每一次當我們做出改變服務的實現。但是,這不是對ClientBase<T>類情況。這將建立代理只能在執行,所以它會打理一切。
為此,建立一個代理類,其中包括refrencesof System.ServiceModel和MyCalculatorService。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using MyCalculatorService; namespace MyCalculatorServiceProxy { Public class MyCalculatorServiceProxy : //WCF create proxy for ISimpleCalculator using ClientBase ClientBase<ISimpleCalculator>, ISimpleCalculator { Public int Add(int num1, int num2) { //Call base to do funtion returnbase.Channel.Add(num1, num2); } } }
現在,建立一個控制台應用程式,其中包括System.ServiceModel和MyCalculatorServiceProxy的參考。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using MyCalculatorServiceProxy; namespace MyCalculatorServiceClient { classProgram { Static void Main(string[] args) { MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy(); Console.WriteLine("Client is running at " + DateTime.Now.ToString()); Console.WriteLine("Sum of two numbers... 5+5 =" + proxy.Add(5, 5)); Console.ReadLine(); } } }
步驟2:結束點(相同服務)的資訊應該被新增到用戶端應用程式的組態檔案。
<?xmlversion="1.0"encoding="utf-8" ?> <configuration> <system.serviceModel> <client> <endpoint address ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator" binding ="wsHttpBinding" contract ="MyCalculatorServiceProxy.ISimpleCalculator"> </endpoint> </client> </system.serviceModel> </configuration>
步驟3:執行用戶端應用程式之前,需要執行的服務。用戶端應用程式的輸出如下所示。