2009-10-05 18 views
17

Ho creato un normale servizio .NET asmx. Come faccio a sovraccaricare i metodi web in questo servizio?I metodi web possono essere sovraccaricati?

+0

Il problema è che il compilatore non prenderlo e la il messaggio di errore non fornisce molte informazioni: "Il servizio (x) sul computer locale è stato avviato e quindi arrestato. Alcuni servizi si interrompono automaticamente se non vengono utilizzati da altri servizi o programmi". – NicVerAZ

risposta

20

WS-I (interoperabilità dei servizi Web) non supporta l'overloading.

+4

Puoi farlo disabilitando la compatibilità WS-I, ma non posso portarmi a proporlo come risposta ;-P A tutti gli intenti sensibili, questa è (IMO) la risposta giusta. –

0

No. I nomi dei metodi di servizio Web devono essere univoci.

1

Sì.

L'attributo WebMethod accetta un parametro MessageName che consente di "sovraccaricare" il metodo.

13

Non è possibile sovraccaricare un metodo Web. Quando ci pensi, questo ha senso perché un metodo web è progettato per non fare affidamento su tecnologie sottostanti come i linguaggi OO, in quanto può teoricamente funzionare in cose come COBOL.

Mentre è possibile scrivere un metodo Web che sembra che può essere sovraccaricato, in realtà si deve assegnare un nome diverso, come in:

[WebMethod] 
public void Add(int x, int y) 
{ 
} 
[WebMethod(MessageName="AddFloat")] 
public void Add(float x, float y) 
{ 
} 
Problemi correlati