Como puedo poner un(os) parametros opcionales en un metodo de un web service

07/09/2006 - 00:44 por Gustavo | Informe spam
Hola Grupo
Alguno de uds. me podria decir como, si es que se puede, para poner
un(os) parametros opcionales en un metodo de un web service

Por ejemplo :
<WebMethod()> _
Public Function GetPedidoPorSICLO(ByVal prmPedidoSICLO As Integer,
Optional ByVal prmOrigen As String = "") As System.Xml.XmlDocument
'
'Codigo
'
'
End Function

Y al momento de llamarlo en mi aplicacion de VB ó ASPX, poner los dos
parametros para realizar la busqueda, o solamente el primero, por que
el primero no sería opcional.

De antemano... Mil Gracias

Saludos

Gustavo Guerra V.
 

Leer las respuestas

#1 Alberto Poblacion
07/09/2006 - 09:41 | Informe spam
"Gustavo" wrote in message
news:
Hola Grupo
Alguno de uds. me podria decir como, si es que se puede, para poner
un(os) parametros opcionales en un metodo de un web service

Por ejemplo :
<WebMethod()> _
Public Function GetPedidoPorSICLO(ByVal prmPedidoSICLO As Integer,
Optional ByVal prmOrigen As String = "") As System.Xml.XmlDocument



El protocolo de los servicios web no permite parámetros opcionales.
Tienes varias alternativas:

1) Definir dos funciones distintas, una con un parámetro y otra con los
dos. Por cierto, no pueden ser dos sobrecargas de la misma función, ya que
el servicio web tampoco admite esto. Las dos funciones tienen que tener dos
nombres distintos.

2) En lugar de pasar dos parámetros, pasar uno solo que sea un objeto de
una clase que previamente has definido y que contiene dentro los dos
parámetros que necesitas. Esto te permitiría perfectamente crear una
instancia de dicha clase y asignarle solo uno de los dos parámetros.

3) Hacer que el parámetro no sea opcional en el servicio web, y
convertirlo en opcional en la parte cliente añadiendo una función para ese
propósito. Si estás usando Visual Studio 2005, hay una forma elegante de
hacerlo que consiste en usar un "Partial Class" con el mismo espacio de
nombres y nombre de clase que el proxy autogenerado, y añadirlo a tu
proyecto. En el partial class pones la función con el argumento opcional, y
haces que dicha función llame a la función del servicio web tras asignar el
valor predeterminado a dicho argumento.

Preguntas similares