Avatar billede fladstrand Nybegynder
25. juli 2011 - 13:00 Der er 8 kommentarer

Kald til WebService med et array som parameter

Har lavet en webservice der modtager en List(of String) og returnere en List(of String)

  Public Function GetObjectValues(ByVal objIds As String(), ByVal objProperty As String) As String()


Når jeg kalder denne på følgende måde:
        Dim ws As New JF_WebService.SEdkVistaWebServiceSoapClient
        Dim arrObjects As New List(Of String)
        Dim tmpArray As New List(Of String)

        For i = 0 To lstObjects.Items.Count - 1
            arrObjects.Add(lstObjects.Items(i).ToString)
        Next
        tmpArray = ws.GetObjectValues(arrObjects, "PV")

Får jeg følgende fejl:
Et objekt af typen 'System.Collections.Generic.List`1 [System.String]' kan ikke konverteres til
typen 'TestUse_SEdkVistaWebService.JF_WebService.ArrayOfString'.

Er der nogen der ved hvordan jeg sender et array af strings til en webservice?
Avatar billede arne_v Ekspert
25. juli 2011 - 16:13 #1
Det oplagte var vel at kalde med et array af string !?!?
Avatar billede arne_v Ekspert
25. juli 2011 - 16:15 #2
Hvis du har LINQ importeret:

Dim tmpArray() As String
...
tmpArray = ws.GetObjectValues(arrObjects.ToArray, "PV")
Avatar billede fladstrand Nybegynder
25. juli 2011 - 16:26 #3
Tak for svaret, men:
Det er ikke tmpArray den brokker sig over. Det er arrObjects
Jeg har forsøgt at definere arrObjects på følgende måder:
- Dim arrObjects As New List(Of String)
- Dim arrObjects As String()

men lige meget hjælper det. Jeg får bare ikke lov til at sende et string-array til min web-service
Avatar billede arne_v Ekspert
25. juli 2011 - 16:38 #4
Lagde du maerke til .ToArray ?
Avatar billede fladstrand Nybegynder
26. juli 2011 - 08:42 #5
Ja, det lagde jeg mærke til. Og, jeg får samme fejl.
1 dimensional array of string cannot be converted to ArrayOfString
Avatar billede arne_v Ekspert
01. august 2011 - 03:53 #6
Se i den genererede stub hvad der forventes.

Det ser ud som om der er genereret en ArrayOfString class.

Men den maa have en constructor eller nogle properties eller nogle metoder der kan putte arrayt ind i saadan en.
Avatar billede fladstrand Nybegynder
01. august 2011 - 08:56 #7
Jeg har løst mit problem.
Det ser ud til at WebServices ikke er så glad for Strings, så jeg har valg at konvertere det hele til Byte(), sende det til min WebService der så konverterer det hele tilbage til String.
Da det ikke er noget der skal ske så tit tror jeg nok det er en brugbar løsning.
/Johnny
Avatar billede arne_v Ekspert
02. august 2011 - 02:44 #8
Selvfoelgelig kan man kalde web services med string.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester