1. 程式人生 > >C # WebService簡單使用實例--關於WSDL文件的正向反向生成

C # WebService簡單使用實例--關於WSDL文件的正向反向生成

lock 添加服務引用 中文 alt 1.3 右鍵 建立 配置 如何

1.1 背景

webService 作為一種語言無關性的程序與程序之間的通訊方式,曾經使用非常廣泛,隨著微軟無語的叠代更新的速度,已經不是那麽流行。之前主要都是被人提供一個URL,我在vs裏面添加服務引用,IDE自動幫我生成相關的代碼。這樣就可以調用別人的方法了,可是這建立在對方的web服務處於打開狀態下,你才能添加服務引用,並生成相關的代碼。可是有一天別人的web服務並沒有部署,並向你扔了一個WSDL文件,我去!!其中心酸的彎路不再廢話,主要記錄下如何從wsdl文件生成客戶端代碼,以及如何通過url生成wsdl文件。

1.2 如何通過url生成wsdl文件

有時候作為服務的提供方,我只是在本地將web 服務的方法寫好調試好,並沒有部署到服務器上,這時候客戶端的那個小夥子還在等著我們提供給他web 引用呢,這個時候 只有我部署完畢,他的進度才能繼續。哈哈,這個時候就是這個wsdl文件站出來發揮作用的時候了。為了演示,就要自己新建一個簡單的web Service。

技術分享圖片

裏面的web方法如下,不用動:

技術分享圖片

開啟服務之後,地址欄裏面會有url如下:

技術分享圖片

這個時候wsdl文件已經生成了,可是我在這個項目的每個文件夾下都找遍了都沒有,去LG百度上搜索得到信息是:任何 一門語言或是IDE在其生成的時候wsdl文件就已經生成了,fuck,Google了一下原來是要在網址後面加一個?WSDL,註意中間不能有空格

回車一下,這個時候我們看到下面這個xml一樣的頁面,這個時候右鍵--另存為。註意不要cory到txt檔裏面,再改文件名後綴這樣丟給被人的時候,生成代碼的時候會報錯。技術分享圖片

另存為

技術分享圖片

好了到此這個wsdl文件已經生成,這個時候可以關掉代碼,把wsdl文件丟給下一個小夥子了。

1.3 如何通過wsdl文件生成指定語言的代碼

有個這個wsdl文件,就可以生成java的,C#的,php的等等的代碼了,主要演示一下vs下面怎麽用,首先要在工具--外部工具--添加 ,裏面配置個wsdl.exe的工具,你配置好之後在工具裏面就能找的到,大部分小夥伴可能還沒用過這個外部工具吧,詳細的如何配置

Google或者百度一下都可以。配置好之後如下:

技術分享圖片

這個時候我們要事先把被人丟過來的wsdl文件放到一個好找的文件夾下:

技術分享圖片

這個時候再新建一個winform客戶端測試項目,新建一個文件夾,選中文件夾,再選中工具--剛剛配置的那個工具,點擊確認。這樣一個cs文件就生成到你選中的文件下面去了,選中文件夾--添加現有項,把代碼顯示出來。

技術分享圖片

如果出現以下輸出沒報錯說明生成成功了。

技術分享圖片

這個時候客戶端的這個我們剛自動生成的mybmm.cs的文件會報錯:web.servers找不到,這個時候需要手動引用一下這個dll。

技術分享圖片

到此大功告成,收工,慢著還需要測試一下。

1.4 測試引用

在客戶端拖一個按鈕試一下。

技術分享圖片

顯示可以調用,和添加服務引用的效果一樣,不過文件夾目錄那裏沒有服務引用的痕跡。

技術分享圖片

C # WebService簡單使用實例--關於WSDL文件的正向反向生成