2009-10-05 23 views
17

He creado un servicio regular .NET asmx. ¿Cómo puedo sobrecargar los métodos web en este servicio?¿Se pueden sobrecargar los métodos web?

+0

La cuestión es que el compilador no lo cogerá y la el mensaje de error no le proporciona mucha información: "El servicio (x) en la computadora local se inició y luego se detuvo. Algunos servicios se detienen automáticamente si otros servicios o programas no los utilizan". – NicVerAZ

Respuesta

20

WS-I (interoperabilidad de servicios web) no admite sobrecarga.

+4

Puede hacerlo desactivando la compatibilidad WS-I, pero no me atrevo a proponer eso como una respuesta ;-p Para todos los intentos prudentes, esta es (IMO) la respuesta correcta. –

0

No. Los nombres de los métodos del servicio web deben ser únicos.

1

Sí.

El atributo WebMethod toma un parámetro MessageName que le permite "sobrecargar" el método.

13

Realmente no se puede sobrecargar un método web. Cuando lo piensas, esto tiene sentido porque un método web está diseñado para no depender de tecnologías subyacentes, como los lenguajes OO, ya que teóricamente puede ejecutarse en cosas como COBOL.

Si bien se puede escribir un método web que parece que puede estar sobrecargado, que realmente tiene que asignarle un nombre diferente, como en:

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