Visual Basic.NET - Objetos en Servicios Web

 
Vista:

Objetos en Servicios Web

Publicado por AOG (4 intervenciones) el 14/09/2004 17:29:45
Esta es la Clase que está en el proyecto Servicio Web:
Public Class MiColeccion
Public Col As New ArrayList:
Public ColKey As New ArrayList
Public Sub Add(ByVal Ob As String, ByVal Key As String)
Col.Add(Ob) : ColKey.Add(Key)
End Sub
End Class
En el servicio web:
<WebMethod()> Public Function Ejemplo(ByVal Col as MiColeccion ) As MiColeccion
If Col.Count = 0 Then
Col.Add("Un Elemento", "Elemento1")
Else
Col.Add("Otro Elemento", "Elemento2"
End If
Return Col
End Sub

En el formulario Windows
Private Sub MiProcedimiento()
Dim oCo1 as MiServicio.MiColeccion
Dim oCo2 as MiServicio.MiColeccion
Dim Sw as MiServicio.Servicio1
oCol.Add("Un Elemento", "Elemento1") : oCo2=Sw.Ejemplo(oCol)
End Sub

Os comento: tengo un clase en el proyecto del Servicio Web y un Metodo de Servicio, tengo un proyecto tipo Windows From, lo que intento es que la aplicación de tipo windows haga una llamada al metodo del servicio web, hasta ahí bien, se hace una referencia al servicio web y se llama a su metodo, el problema es que necesito recibir y pasar como parámetro un objeto creado por mí que emula a una coleccion, el problema es que lo unico que se ve en la coleccion desde el formulario son los dos arrays pero no se ve el metodo Add de mi clase, pero no puedo acceder a oCol.Add, he comporbado que solo se ven de los objetos que están en el servicio web las propiedades, es decir, la variables publicas declaradas en el objeto, pero no los procedimientos o funciones.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:Objetos en Servicios Web

Publicado por Yamil Bracho (631 intervenciones) el 14/09/2004 21:21:55
Lo que pasa es que es totalmente diferentes un servicio web a una clase local. Cuando creas el servicio web tu le dices que metodos van a poder ser usados por los usuarios de ese servicio atraves del atributo WebMethod. A pesar de que definiste el metodo Add como publico este no es "visto" por el formulario porque solo esta marcado Ejemplo como WebMethod..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Objetos en Servicios Web

Publicado por AOG (4 intervenciones) el 15/09/2004 09:53:06
Aunque yo le anteponga <WebMethod> no es visto el método Add ya que pertenece a una clase que es aparte de la clase del Servicio Web, es decir, aunque esté en el mismo proyecto no está en el archivo .asmx que es donde están todos los metodos del servicio <WebMethod>, esta clase implementada por mi está en un archivo Class.vb para que el objeto de esta clase pueda ser utilizada por el servicio web y el cliente de servicios, en este caso un formulario windows, para que el formulario pueda ver este objeto se hace una referencia al servicio web como muestro en el ejemplo. El problema creo que es porque los servicios Web traduce a XML los objetos simples, dataset, arrays simples y variables como strimg, integer, etc. y los objetos más avanzados como colecciones, y objetos implementados por programación no los traduce a XML, a no ser que se use la serialización, y el problema que tengo es que no se hacer esto serializar mi objeto. Al menos esto es la conclución que he llegado buscando información, creo yo, yo en esto soy nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar