un ejercicio simple de webservice en vb.net

02/02/2005 - 17:36 por Carolina | Informe spam
Mi nombre es Carolina, soy de Caracas Venezuela.
Estoy estudiando para la segunda estrella de Microsoft y...
tengo un problemita.
Una de las tareas es pasar el código de un WebService hecho en C# a VB.Net.
El codigo que presento a continuacion posee un WebMethod que suma dos
valores y otro que debe mostrar contactos nuevos. Para esto además esta
definida una clase contacto que está al final.
He eliminado el código de la Región para que se vea más claro. Mi problema
está en el código del WebMethod para VerContacto. Ya hice la clase pero no
sé cómo hacer con el arreglo. He inventado miles de cosas. No conozco el
lenguaje C#, no sé muy bien sobre la equivalencia a VB.
En fin, esto así tal como está da error.

Gracias por la ayuda =)

Caro

PD: Esto sólo para los que no conocen muy bien la razón de ser de un Grupo
de Noticias, si me va a mandar a comprar libros como alguien hizo por ahí
alguna vez, le agradezco obvie esta petición de ayuda y no escriba nada.
GRACIAS.

Imports System.Web.Services

Imports System.Xml.Serialization

<System.Web.Services.WebService(Namespace:="http://microsoft.com/webservices
/")> _

Public Class ojala

Inherits System.Web.Services.WebService

#Region " Código generado por el Diseñador de servicios Web "

<WebMethod()> Public Function Suma(ByVal a As Integer, ByVal b As Integer)
As Integer

Return a + b

End Function

<WebMethod()> Public Function VerContacto() As Contacto

'lo verde es código en C#

'Return New Contacto

Dim aContacto(4) As Contacto

aContacto(0).Nombre = "Alexis Reátegui"

aContacto(0).Email = "alexisr@hotmail.com"

aContacto(0).Telefono = "5552266"

aContacto(1).Nombre = "Jorge Oblitas"

aContacto(1).Email = "dragonsking@hotmail.com"

aContacto(1).Telefono = "4444466"

'New Contacto("Alexis Reátegui", "alexisr@hotmail.com", "5552266")

'New Contacto("Jorge Oblitas", "dragonsking@hotmail.com", "4444466")

'New Contacto("Sergio Victorio", "t-sergiv@microsoft.com", "3333366")

'New Contacto("Guino Henostroza", "guino@hotmail.com", "4564433")

' New Contacto("Daniel Seara", "daniseara@msn.com", "9987667")

Return aContacto(4)

End Function



Public Class Contacto

Public Nombre As String

Public Email As String

Public Telefono As String

'Todas las clases serializables en XML deben poder

'utilizar un constructor sin parámetros

Sub New()

'nada que hacer en este ejemplo

End Sub

Sub New(ByVal nombre As String, ByVal email As String, ByVal fono As String)

Me.Nombre = nombre

Me.Email = email

Me.Telefono = fono

End Sub

End Class

End Class

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
02/02/2005 - 20:05 | Informe spam
"Carolina" escribió en el mensaje
news:

Hola, Carolina:

Cuando declaras (en cualquier lenguaje) un arreglo de objetos, simplemente
reservas memoria para almacenar referencias. Inicialmente, el arreglo
contiene referencias a Nothing.

De manera que para llenarlo basta con que escribas:

aContacto(0) = New Contacto("Alexis Reátegui", "",
"5552266")
aContacto(1) = New Contacto("Jorge Oblitas", "",
"4444466")
aContacto(2) = New Contacto("Sergio Victorio", "",
"3333366")
aContacto(3) = New Contacto("Guino Henostroza", "",
"4564433")
aContacto(4) = New Contacto("Daniel Seara", "", "9987667")

Salud!
Respuesta Responder a este mensaje
#2 Pedro Luna Montalvo, MVP
03/02/2005 - 04:04 | Informe spam
Y si por si acaso lo que quieres es que el metodo VerContacto() retorne el
arreglo de contactos, con el codigo de Leonardo y lo pondria asi:

<WebMethod()> Public Function VerContacto() As Contacto()
Dim aContacto(4) As Contacto
aContacto(0) = New Contacto("Alexis Reátegui", "",
"5552266")
aContacto(1) = New Contacto("Jorge Oblitas", "",
"4444466")
aContacto(2) = New Contacto("Sergio Victorio", "",
"3333366")
aContacto(3) = New Contacto("Guino Henostroza", "",
"4564433")
aContacto(4) = New Contacto("Daniel Seara", "",
"9987667")

Return aContacto
End Function


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g> escribió
en el mensaje news:%23pW$

"Carolina" escribió en el mensaje
news:

Hola, Carolina:

Cuando declaras (en cualquier lenguaje) un arreglo de objetos, simplemente
reservas memoria para almacenar referencias. Inicialmente, el arreglo
contiene referencias a Nothing.

De manera que para llenarlo basta con que escribas:

aContacto(0) = New Contacto("Alexis Reátegui", "",
"5552266")
aContacto(1) = New Contacto("Jorge Oblitas", "",
"4444466")
aContacto(2) = New Contacto("Sergio Victorio", "",
"3333366")
aContacto(3) = New Contacto("Guino Henostroza", "",
"4564433")
aContacto(4) = New Contacto("Daniel Seara", "",
"9987667")

Salud!


Respuesta Responder a este mensaje
#3 Carolina
03/02/2005 - 05:07 | Informe spam
Gracias Leonardo, gracias Pedro.
Bueno, coloqué el código de Leonardo y le agregué lo que me dices Pedro.
Si coloco Return aContacto solamente me lo marca como error y me dice: "un
valor de tipo '1-matriz dimensional de WebServiceMio.Ojala.Contacto' no se
puede convertir en '2'"
Luego coloqué:
Return aContacto() ..pero me dice que El número de índices es inferior al
número de dimensiones de la matriz indizada.
Luego puse...Return aContacto(4) ..el XML me muestra lo que está ahí que es
el contacto de Daniel Seara.
Será que tengo algo malo en la clase Contacto?
No sé que pasa.

Bueno gracias de nuevo.
Caro

"Pedro Luna Montalvo, MVP" escribió en
el mensaje news:
Y si por si acaso lo que quieres es que el metodo VerContacto() retorne el
arreglo de contactos, con el codigo de Leonardo y lo pondria asi:

<WebMethod()> Public Function VerContacto() As Contacto()
Dim aContacto(4) As Contacto
aContacto(0) = New Contacto("Alexis Reátegui", "",
"5552266")
aContacto(1) = New Contacto("Jorge Oblitas",


"",
"4444466")
aContacto(2) = New Contacto("Sergio Victorio",


"",
"3333366")
aContacto(3) = New Contacto("Guino Henostroza", "",
"4564433")
aContacto(4) = New Contacto("Daniel Seara", "",
"9987667")

Return aContacto
End Function


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g>


escribió
en el mensaje news:%23pW$
>
> "Carolina" escribió en el mensaje
> news:
>
> Hola, Carolina:
>
> Cuando declaras (en cualquier lenguaje) un arreglo de objetos,


simplemente
> reservas memoria para almacenar referencias. Inicialmente, el arreglo
> contiene referencias a Nothing.
>
> De manera que para llenarlo basta con que escribas:
>
> aContacto(0) = New Contacto("Alexis Reátegui", "",
> "5552266")
> aContacto(1) = New Contacto("Jorge Oblitas", "",
> "4444466")
> aContacto(2) = New Contacto("Sergio Victorio", "",
> "3333366")
> aContacto(3) = New Contacto("Guino Henostroza", "",
> "4564433")
> aContacto(4) = New Contacto("Daniel Seara", "",
> "9987667")
>
> Salud!
>
>


Respuesta Responder a este mensaje
#4 Pedro Luna Montalvo, MVP
03/02/2005 - 14:36 | Informe spam
Pues lo acabo de copiar al codigo y no me da mensajes de error.

Seguro que la cabecera esta como te indique:

<WebMethod()> Public Function VerContacto() As Contacto()

mira que al final termina con Contacto y dos parentensis.


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu


"Carolina" escribió en el mensaje
news:%
Gracias Leonardo, gracias Pedro.
Bueno, coloqué el código de Leonardo y le agregué lo que me dices Pedro.
Si coloco Return aContacto solamente me lo marca como error y me dice: "un
valor de tipo '1-matriz dimensional de WebServiceMio.Ojala.Contacto' no se
puede convertir en '2'"
Luego coloqué:
Return aContacto() ..pero me dice que El número de índices es inferior al
número de dimensiones de la matriz indizada.
Luego puse...Return aContacto(4) ..el XML me muestra lo que está ahí que


es
el contacto de Daniel Seara.
Será que tengo algo malo en la clase Contacto?
No sé que pasa.

Bueno gracias de nuevo.
Caro

"Pedro Luna Montalvo, MVP" escribió


en
el mensaje news:
> Y si por si acaso lo que quieres es que el metodo VerContacto() retorne


el
> arreglo de contactos, con el codigo de Leonardo y lo pondria asi:
>
> <WebMethod()> Public Function VerContacto() As Contacto()
> Dim aContacto(4) As Contacto
> aContacto(0) = New Contacto("Alexis Reátegui",


"",
> "5552266")
> aContacto(1) = New Contacto("Jorge Oblitas",
"",
> "4444466")
> aContacto(2) = New Contacto("Sergio Victorio",
"",
> "3333366")
> aContacto(3) = New Contacto("Guino Henostroza", "",
> "4564433")
> aContacto(4) = New Contacto("Daniel Seara", "",
> "9987667")
>
> Return aContacto
> End Function
>
>
> Saludos
> Pedro Luna, [MVP VB.NET]
> Gye, Ecu
>
> "Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g>
escribió
> en el mensaje news:%23pW$
> >
> > "Carolina" escribió en el mensaje
> > news:
> >
> > Hola, Carolina:
> >
> > Cuando declaras (en cualquier lenguaje) un arreglo de objetos,
simplemente
> > reservas memoria para almacenar referencias. Inicialmente, el arreglo
> > contiene referencias a Nothing.
> >
> > De manera que para llenarlo basta con que escribas:
> >
> > aContacto(0) = New Contacto("Alexis Reátegui", "",
> > "5552266")
> > aContacto(1) = New Contacto("Jorge Oblitas",


"",
> > "4444466")
> > aContacto(2) = New Contacto("Sergio Victorio",


"",
> > "3333366")
> > aContacto(3) = New Contacto("Guino Henostroza", "",
> > "4564433")
> > aContacto(4) = New Contacto("Daniel Seara", "",
> > "9987667")
> >
> > Salud!
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Pedro Luna Montalvo, MVP
03/02/2005 - 14:39 | Informe spam
Otra alternativa es que, como lei parece que estas trasladando codigo C# a
VB.NET. Si es asi, puedes poner un fragmento del codigo en C# y seria mas
facil para los del foro traducirlo.


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Pedro Luna Montalvo, MVP" escribió en
el mensaje news:
Pues lo acabo de copiar al codigo y no me da mensajes de error.

Seguro que la cabecera esta como te indique:

<WebMethod()> Public Function VerContacto() As Contacto()

mira que al final termina con Contacto y dos parentensis.


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu


"Carolina" escribió en el mensaje
news:%
> Gracias Leonardo, gracias Pedro.
> Bueno, coloqué el código de Leonardo y le agregué lo que me dices Pedro.
> Si coloco Return aContacto solamente me lo marca como error y me dice:


"un
> valor de tipo '1-matriz dimensional de WebServiceMio.Ojala.Contacto' no


se
> puede convertir en '2'"
> Luego coloqué:
> Return aContacto() ..pero me dice que El número de índices es inferior


al
> número de dimensiones de la matriz indizada.
> Luego puse...Return aContacto(4) ..el XML me muestra lo que está ahí que
es
> el contacto de Daniel Seara.
> Será que tengo algo malo en la clase Contacto?
> No sé que pasa.
>
> Bueno gracias de nuevo.
> Caro
>
> "Pedro Luna Montalvo, MVP"


escribió
en
> el mensaje news:
> > Y si por si acaso lo que quieres es que el metodo VerContacto()


retorne
el
> > arreglo de contactos, con el codigo de Leonardo y lo pondria asi:
> >
> > <WebMethod()> Public Function VerContacto() As Contacto()
> > Dim aContacto(4) As Contacto
> > aContacto(0) = New Contacto("Alexis Reátegui",
"",
> > "5552266")
> > aContacto(1) = New Contacto("Jorge Oblitas",
> "",
> > "4444466")
> > aContacto(2) = New Contacto("Sergio Victorio",
> "",
> > "3333366")
> > aContacto(3) = New Contacto("Guino Henostroza",


"",
> > "4564433")
> > aContacto(4) = New Contacto("Daniel Seara", "",
> > "9987667")
> >
> > Return aContacto
> > End Function
> >
> >
> > Saludos
> > Pedro Luna, [MVP VB.NET]
> > Gye, Ecu
> >
> > "Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g>
> escribió
> > en el mensaje news:%23pW$
> > >
> > > "Carolina" escribió en el mensaje
> > > news:
> > >
> > > Hola, Carolina:
> > >
> > > Cuando declaras (en cualquier lenguaje) un arreglo de objetos,
> simplemente
> > > reservas memoria para almacenar referencias. Inicialmente, el


arreglo
> > > contiene referencias a Nothing.
> > >
> > > De manera que para llenarlo basta con que escribas:
> > >
> > > aContacto(0) = New Contacto("Alexis Reátegui",


"",
> > > "5552266")
> > > aContacto(1) = New Contacto("Jorge Oblitas",
"",
> > > "4444466")
> > > aContacto(2) = New Contacto("Sergio Victorio",
"",
> > > "3333366")
> > > aContacto(3) = New Contacto("Guino Henostroza", "",
> > > "4564433")
> > > aContacto(4) = New Contacto("Daniel Seara", "",
> > > "9987667")
> > >
> > > Salud!
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida