1. 程式人生 > >將webservice介面生成代理類

將webservice介面生成代理類

我們知道呼叫webservice介面的一種方式是直接在客戶端程式集上右鍵新增web引用。但是當我們的開發環境是保密的,離線的這時候我們在新增web引用的時候就搜不到服務端webservice了,這時候我們想在本地編碼,怎麼辦呢?

解決方法:

可以讓服務端webservice開發人員在瀏覽器瀏覽webservice地址,在地址後加上?wsdl,即可以在瀏覽器上看到wsdl檔案,在瀏覽器上點選另存為,將wsdl檔案儲存成一個asmx的檔案。將wsdl檔案通過外網轉內網,或者U盤的方式轉到本地。轉到本地之後將wsdl檔案的字尾改為.wsdl結尾(例如:webservice.asmx改為webservice.asmx.wsdl)。在電腦-“開始”中找到某個版本的visualStudio開發平臺資料夾開啟visualstudioTools,開啟“(VSXXXX(2015))開發人員命令提示”可以進入Dos控制檯.貼上命令

wsdl /language:c# /n:TestDemo /out:d:/Temp/TestService.cs D:/Temp/TestService.wsdl

------------------------------------------------------------------------------------------------------------------------------

/out:後是將wsdl檔案儲存成代理類,代理類放的位置。需要有d:/Temp資料夾,否則會提示找不到路徑。TestService.cs檔案不用建,工具會將檔案自動生成。

D:/Temp/TestService.wsdl是wsdl檔案在本地的地址,可以直接將檔案拖拽到dos控制檯中。回車即可將wsdl檔案轉換為代理類。

生成的代理類:

上圖的URL可以改,當服務端webservice改了url的時候,可以直接在代理類裡面改此處的url,可以說比新增web引用更加靈活。

可以看到生成的代理類中也有方法的非同步操作以及非同步完成後的事件,可以說和使用“新增web引用”的方式來編碼是一模一樣的。