2009-10-05 11 views
17

मैंने नियमित रूप से .NET ASMX सेवा बनाई है। मैं इस सेवा में वेब विधियों को कैसे अधिभारित करूं?वेब विधियों को अधिभारित किया जा सकता है?

+0

मुद्दा यह है कि संकलक यह और पकड़ नहीं जाएगा त्रुटि संदेश आपको अधिक जानकारी प्रदान नहीं करता है: "स्थानीय कंप्यूटर पर (x) सेवा शुरू हो गई और फिर बंद कर दिया गया। कुछ सेवाएं स्वचालित रूप से बंद हो जाती हैं अगर वे अन्य सेवाओं या प्रोग्रामों द्वारा उपयोग में नहीं हैं"। – NicVerAZ

उत्तर

20

डब्ल्यूएस-आई (वेब ​​सेवाएं इंटरऑपरेबिलिटी) ओवरलोडिंग का समर्थन नहीं करता है।

+4

आप इसे डब्लूएस-आई संगतता अक्षम करके कर सकते हैं, लेकिन मैं खुद को एक उत्तर के रूप में प्रस्तावित करने के लिए नहीं ला सकता हूं ;- सभी समझदार इरादों के लिए, यह सही जवाब है (आईएमओ)। –

0

नहीं। वेब सेवा विधि नाम अद्वितीय होना चाहिए।

1

हां।

WebMethod विशेषता एक संदेश नाम पैरामीटर लेती है जो आपको विधि को "ओवरलोड" करने की अनुमति देती है।

13

आप वास्तव में एक वेब विधि अधिभारित नहीं कर सकते हैं। जब आप इसके बारे में सोचते हैं, तो यह समझ में आता है क्योंकि एक वेब विधि को ओओ भाषाओं जैसे अंतर्निहित प्रौद्योगिकियों पर भरोसा न करने के लिए डिज़ाइन किया गया है, क्योंकि यह सैद्धांतिक रूप से COBOL जैसी चीजों में चल सकता है।

आप एक वेब विधि ऐसा दिखता है जैसे अतिभारित किया जा सकता लिख ​​सकते हैं, आप वास्तव में यह एक अलग नाम प्रदान करते हैं, के रूप में में है:

[WebMethod] 
public void Add(int x, int y) 
{ 
} 
[WebMethod(MessageName="AddFloat")] 
public void Add(float x, float y) 
{ 
} 
संबंधित मुद्दे

 संबंधित मुद्दे