Pasar vectores y dataset a servicios web

Primero que nada, veo que alguien lee lo que pongo🙂, así que hago honor a mi compromiso de dar, desde mi punto de vista, alguna solución a esos problemas en el desarrollo.
 
Para pasar valores a un servicio web, esto se hace, en el modelo simple, en texto plano con una estructura XML pre establecida. Esta se establece en base a una descripción WSDL que, en .Net, es facilmente accesible ya que el mismo Visual Studio la crea cuando creamos un servicio web.
 
Para poder ver esta descripción, solo debemos agregarle a la dirección URL del servicio ?WSDL, y esta retorna un XML con todos los parametros necesarios para ejecutar el famoso servicio web.
 
Ahora, que es aquello que podemos enviarle, como parametro desde .Net a un servicio web?. En pocas palabras, todo aquello que sea SERIALIZABLE. Esto, resumiendolo, es todo aquello que pueda ser convertido, en sus datos, a XML. Podríamos tomarnos un buen rato en explicar todos los procesos, así que para introducción creo que basta😀
 
De esta forma, cualquier cosa que pueda ser transformado en un XML, puede ser enviado a un servicio web.
 
En el caso de un dataview, un datatable, y otros objetos similares, que no cuentan con esta propiedad, simplemente no se admiten para la transferencia de datos.
 
Pero, lo curioso es que un DataSet si puede ser enviado. Un DataSet, como contenedor de DataTables si, pero el DataTable solo no. Y es otro tema que puede tomar varias líneas explicarlo🙂
 
En todo caso, aquí les dejo código para que puedan enviar arrays y dataset a los servicios webs. Nada del otro mundo en todo caso🙂
 

<WebMethod()> _

Public Function MetodoArray(ByVal strArray() As String, ByVal intIndice As Integer) As String

Return strArray(intIndice)

End Function

<WebMethod()> _

Public Function MetodoDataSet(ByVal oDs As DataSet, ByVal intIndice As Integer) As String

Return oDs.Tables(0).Rows(0).Item(intIndice).ToString

End Function

 

Y la prueba desde el código en un formulario web:

 

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim MiArray(10) As String

For i As Integer = 0 To 9

MiArray(i) = i.ToString

Next

Dim oWs As New ServicioWeb.WebService

Me.Label1.Text = oWs.MetodoArray(MiArray, 1)

End Sub



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s