2017-07-02 58 views
0

C#Web服務方法我想建立與可選參數WebMethod使用可選參數

我知道設置MessageName的方式。

[WebMethod(MessageName = "Default")] 
public void SearchPerson(String finger_print_base64) 
{ 

} 

[WebMethod(MessageName = "AddThreshold")] 
public void SearchPerson(String finger_print_base64,int threshold) 
{ 

} 

但我想設置兩個相同類型的參數。

[WebMethod(MessageName = "AddThreshold")] 
public void SearchPerson(String finger_print_base64,int threshold) 
{ 

} 

[WebMethod(MessageName = "AddMinMatches")] 
public void SearchPerson(String finger_print_base64,int mini_matches) 
{ 

} 

而且Visual Studio告訴我一個錯誤。

+1

的錯誤是明顯的對不對?你想達到什麼目的? – Sybren

+0

您有三種方法具有相同的簽名。你如何期望編譯器檢測到它們不同?儘管'MessageName'屬性用於*方法*在* web服務*中重載,但是你的代碼應該首先編譯。 –

+0

您應該關注您的方法聲明而不是webmethods的名稱。非常明顯的錯誤,你有一個相同的簽名方法。 – ngeksyo

回答

0

您有相同簽名絲束的方法,至少改變一個參數的數據類型或添加等的另一參數(布爾「SearchPerson已經用相同類型的參數 哈瓦的方法」一個)!

更改參數的名稱不是解決方案。

0

起初:超載的網絡方法不支持,IIS不能處理它。

現在,編譯器無法建立因爲拖以上方法具有相同的類以相同的名稱和簽名,怎麼能解決的「DLL」文件的方法,而不混淆! ,,

如果你想打電話給你的方法使用接口或抽象類,並在新的三類從它覆蓋的方法,並呼籲他們

:)

「MessageName」只是一個盟友

沒有超載因爲方法名成爲一個(地址或URL等),因此應用程序將路線是不關心它的簽名,編程功能,甚至它的編程語言。