Maldito WebService :(

23/12/2008 - 16:36 por José Luis | Informe spam
Hola a todos...

Tengo un WebService que ejecuta una consulta SQL pasándole el comando y un
array de SqlParameter. Devuelve 1 dataset con el resultado.

Cuando añado la referencia al servicio, esta se mete en un namespace y se
crea un nuevo tipo para asignarlo al parámetro:

En el webservice

[webmethod]
public DataSet SqlQuery(string Command, SqlParameter []Parms){
[...]
}


Si la referencia en la que lo añado se llama, por ejemplo, DatosRemotos, en
el código del cliente que la utiliza, crea una nueva clase
"DatosRemotos.SqlParameter". El problema está en que toda la aplicación
trabaja con objetos System.Data.SqlClient.SqlParameter y que las llamadas al
webservice esperan objetos de tipo DatosRemotos.SqlParameter, ¡¡ pero son el
mismo tipo!!

¿Qué es lo que tengo que hacer para que .NET declare los parámetros con los
tipos originales que implementa el webservice y que no cree estas clases que
realmente no sirven para otra cosa que entorpecer????

Saludos
 

Leer las respuestas

#1 Iver
23/12/2008 - 18:58 | Informe spam
Hola Josés Luis,

No se cual sea la finalidad de tu webservice, pero te adelanto que un
webservice es un servicio web como su nombre lo indica, que te permite
encapsular operaciones de un sistema y exponerlo para su uso en la web desde
cualquier aplicación independientemente del leguaje en el que esté escrito.

En otras palabras, es una interfaz capaz de recibir una petición, activar
unos procesos y devolver los resultados. Todo esto, en Internet y a través de
protocolos de red (HTTP,FTP,SMTP).
La comunicación entre los diferentes entornos del Web Services se realiza
mediante XML.

Esto quiere decir que los datos que envias / recibes al consumir un
webservice se generan en formato XML, es por eso que para facilitar la
comunicación entre sistemas, se recomienda que utilices tipos de datos
primitivos y no aquellos tipos de datos complejos.

Puedes generar una clase que contenga los datos a enviar / recibir, pero
tendrías que definir en cada sistema (el que expone el webservice y el que lo
consume) tu clase para que esta se pueda mapear con cada propiedad (sobre
todo si son clases complejas). En particular yo no he tenido necesidad de
pasar datos como dataset en un webservice y se me hace que debes redefinir lo
que necesitas que exponga / se consuma en tu webservice.

Saludos!

Para que entiendas mejor el concepto y no te llene de rollo puedes consultar
la wikipedia [1].

[1] http://en.wikipedia.org/wiki/Webservices

Iván Jaimes (Iver)
http://www.iver.com.mx

Preguntas similares