WebService 方法過載問題

2021-06-18 12:24:09 字數 1627 閱讀 2490

在開發中使用webservice,發現它不支援方法過載。如下為**他人的文章

文章內容**:

閱讀目錄

一:webservice中的方法是否允許過載?

二:為什麼webservice中不支援方法的過載?

三:如何解決webservice中方法的過載?

一:webservice中的方法是否允許過載?

webservice中不支援使用方法的過載,從我們能夠得出結論

二:為什麼webservice中不支援方法的過載?webservice中不支援方法的過載,這還得從webservice的工作機制中說起,當客戶端呼叫乙個webservice的方法時,首先要將方法名稱和需要傳遞的引數包裝成xml,也就是soap包,通過http協議傳遞到伺服器端,然後伺服器端解析這段xml,得到被呼叫的方法名稱和傳遞過來的引數,進而呼叫webservice相應的方法,方法執行完畢後,將返回結果再次包裝為xml,也就是soap響應,傳送到客戶端,最後客戶端解析這段xml,最終得到返回結果,關鍵在於伺服器端解析xml時無法識別過載的方法,webservice只認方法的名稱,而且兩個方法的名稱相同,伺服器端不知道該呼叫哪個相應的方法

三:如何解決webservice中方法的過載?

可以通過messagename屬性消除由於多個相同的名稱造成的web服務無法識別的問題,因為messagename屬性使得web服務能夠確定唯一別名的過載方法,預設時候是方法本身的名稱,當指定messagename屬性後,soap將反映messagename的值,而不是方法名稱本身,所以這就解決了webservice中不支援方法的過載

我們現在來看這兩個方法的訊息名稱是不就被區分開了

舉例和生活相結合,做一條快樂的小

Web Service 中過載的實現方法

通過在方法中新增乙個messagename屬性,並將類的webservicebinding 屬性中conformsto 指定為wsiprofiles.none。具體寫法 請檢查下面每個標準化宣告是否存在衝突。請按建議修正衝突,或向 配置節新增設定,對整個 vroot 關閉 bp 1.1 一致性警告。...

如何在WebService中過載方法

1.本來在webservice中這樣寫的過載方法,如下所示 webservice namespace webservicebinding conformsto wsiprofiles.basicprofile1 1 public class dataobjectwebservice system.w...

WebService過載問題

webservice namespace webservicebinding conformsto wsiprofiles.basicprofile1 1 to allow this web service to be called from script,using asp.net ajax,un...