Pasar y recibir objetos en Servicios Web

09/09/2004 - 20:07 por AOG | Informe spam
Hola, tengo un problema y es que estoy viendo el
funcionamiento de Servicios Web y no se como hacer una
llamada a un metodo del servicio web pasándole un objeto
creado por mi y que me devuelva el mismo objeto con los
valores modificados. He oido algo sobre serializar y
estoy buscando información pero no he encontrado un
ejemplo. Alguien me podría mostrar un ejemplillo.
Yo lo que quiero es:

Esta es la clase que tengo, y está en un ensamblado (Dll)
y los dos proyecto (el del formulario Windows y el
servicio Web) hacen referencia a este ensamblado
Ensamblado con la Clase estructura:
Public Class MiEstructura
dim _Codigo As string
dim _Nombre As string
Public Property Codigo() As String
Get
Return _Codigo
End Get
Set(ByVal Value As String)
_Codigo = Value
End Set
End Property
Public Property Nombre() As String
Get
Return _Nombre
End Get
Set(ByVal Value As String)
_Nombre = Value
End Set
End Property
End Class

En mi formulario Windows hace una llamada a un servicio
web:
Private Sub ObtenerDatos()
Dim oArt as New MiEstructura
Dim MiServicio As New SerWeb.Service1
oArt = MiServicio.ObtenerArt("00214","Libro")
MsgBox(MiServicio.EnviarArt(oArt))
End Sub

En mi Servicio Web:
<WebMethod()> Public Function ObtenerArt(ByVal M1 As
String, ByVal M2 As String ) As MiEstructura
Dim oArt as New MiEstructura
oArt.Codigo = M1
oArt.Nombre = M2
Return oArt
End Function

<WebMethod()> Public Function EnviarArt(ByVal oArt As
MiEstructura) As String
Return "Codigo = " & oArt.Codigo & ", Nombre: " & _
oArt.Nombre
End Function

Supongo que esto se podrá hacer pero no medeja me da
error.

Que hay que hacer para que esto funcione?

Un saludo.
 

Leer las respuestas

#1 Daniel Mazzini
10/09/2004 - 12:34 | Informe spam
No comentas el error que te da ... pero me la voy a jugar

Private Sub ObtenerDatos()
Dim oArt as New MiEstructura --> Dim oArt as
SerWeb.MiEstructura.
Dim MiServicio As New SerWeb.Service1
oArt = MiServicio.ObtenerArt("00214","Libro")
MsgBox(MiServicio.EnviarArt(oArt))
End Sub

En teoria la clase MiEstructura no esta en local, solo
esta en el servidor, porque sino te debe estar dando un
error de tipos de datos, por un lado tenes
SerWeb.MiEstructura y por otro lado solo MiEstructura.

Igual si no es esto manda el mensaje de error o
compilacion que te esta dando.

Salu2
Daniel


Hola, tengo un problema y es que estoy viendo el
funcionamiento de Servicios Web y no se como hacer una
llamada a un metodo del servicio web pasándole un objeto
creado por mi y que me devuelva el mismo objeto con los
valores modificados. He oido algo sobre serializar y
estoy buscando información pero no he encontrado un
ejemplo. Alguien me podría mostrar un ejemplillo.
Yo lo que quiero es:

Esta es la clase que tengo, y está en un ensamblado (Dll)
y los dos proyecto (el del formulario Windows y el
servicio Web) hacen referencia a este ensamblado
Ensamblado con la Clase estructura:
Public Class MiEstructura
dim _Codigo As string
dim _Nombre As string
Public Property Codigo() As String
Get
Return _Codigo
End Get
Set(ByVal Value As String)
_Codigo = Value
End Set
End Property
Public Property Nombre() As String
Get
Return _Nombre
End Get
Set(ByVal Value As String)
_Nombre = Value
End Set
End Property
End Class

En mi formulario Windows hace una llamada a un servicio
web:
Private Sub ObtenerDatos()
Dim oArt as New MiEstructura
Dim MiServicio As New SerWeb.Service1
oArt = MiServicio.ObtenerArt("00214","Libro")
MsgBox(MiServicio.EnviarArt(oArt))
End Sub

En mi Servicio Web:
<WebMethod()> Public Function ObtenerArt(ByVal M1 As
String, ByVal M2 As String ) As MiEstructura
Dim oArt as New MiEstructura
oArt.Codigo = M1
oArt.Nombre = M2
Return oArt
End Function

<WebMethod()> Public Function EnviarArt(ByVal oArt As
MiEstructura) As String
Return "Codigo = " & oArt.Codigo & ", Nombre: " & _
oArt.Nombre
End Function

Supongo que esto se podrá hacer pero no medeja me da
error.

Que hay que hacer para que esto funcione?

Un saludo.
.

Preguntas similares