2009-11-10 55 views
2

有人問我在採訪中能有2個webMethods的同名網絡服務中使用C#

問題能有2個webMethods的,在C#中的Web服務中相同的名稱。

功能重載是可能的,但面試官想要一個答案,而不使用函數重載。

我的答案是否定的。請更正意見。

+0

如果面試官想沒有函數重載的答案,並沒有說「兩種方法具有相同的名稱和簽名」,我想你需要到別處。 –

回答

2

不,你不能有兩個具有相同名字和相同簽名的方法。這沒有什麼意義。

+4

他沒有說相同的簽名。這甚至不會編譯! – leppie

+0

@leppie,我不確定這對我有什麼意義。如果您有兩個具有相同名稱的函數並且沒有進行函數重載,那麼您的簽名相同。現在,還有其他一些有趣的事情。有這樣的事情不會編譯,因此將無法正常工作。所以,這對我來說也沒有什麼意義。 – BobbyShaftoe

1

我想你可以,如果你暴露他們作爲不同的外部名稱(如果可能的話)。

+0

完全相同 - 在WCF中 - 你需要給他們不同的外部可見名稱 –

3

這是可以做到,你可以在這裏閱讀:http://www.codeproject.com/KB/webservices/OverloadingInWebService.aspx

你之所以需要做這個「特殊」的東西,只是因爲WSDL不支持相同的方法名稱...

編輯:我看到鏈接忘了WebServiceBinding:

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.None)] 
public class TestService : System.Web.Services.WebService { 

} 
+0

但這是關於超載。 – BobbyShaftoe