Servicios Web

09/09/2004 - 20:06 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 Fernando Ducrey
09/09/2004 - 21:11 | Informe spam
Hola
Una forma de hacerlo seria
Hacer una referencia a esa clase en el WS
despuesta dentro del Clase del WebService
Declaras una variable pero publica

Public A as new MiEstructura

Y Luego vienen los WebMethods pero Ojo
No podes hacer usos de las propertys

Asi quedaria tu clase

Public Class MiEstructura
Public _Codigo As string
Public _Nombre As string
End Class

Y del lado del cliente las vas a ver cuando

Dim S as new Servicio.Service1.asmx
Dim P as new Servicio.Service1.MiEstructura

Y mi estructura podes cambiar desde el lado del
cliente o dentro del web service

Pero..Tenes que enviarlos resultados dentro
del Soap Header del WebMethod

Sino sabes lo que es un Soap Header
mandame un email

Saludos

Fernando Ducrey




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