C# Webservice overload

摘要:C# Webservice overload

有時候在 Webservice 上的一些方法需要採用 overload 的方式來增加

 

程式的維護姓 , 而這也是 OO 向來的寫法 , 可是對於 Webservice 而言必須

 

有個唯一的名稱 , 例如當我們在一個服務下建立相同名稱卻不同參數的方法

 

會馬上遭遇到下列問題 :

 

 

但是在 .Net 提供使用 MessageName 屬性來 overload 方法 , 

 

可是這時候會遭遇到另外一個問題 , 如下圖 :

 

 

這時我們可以注意到在我們的 webservice 建立之初都會增加下列字串 ,

 

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

 

這表示我們的服務必須符合 Web Services Interopability Organization's (WS-I) Baisc Profile 1.1

 

的規範 , 這個規範定義了一堆必須遵守的規則 , 為了解決這個問題 , 我們可以將上述修改如下 :

 

[WebServiceBinding(ConformsTo = WsiProfiles.None)]

 

如此一來將不會再發生上述的問題 , 但是可議的是 , 雖然在 .Net 

 

你可以做到 , 但是並不被鼓勵 , 詳情可見 W3C 組織對這個議題的討論串 ( section 3-6 )

 

而在 MSDN 也有文章提到 , 可見網址

 

參考資料 :