Toon posts:

[.NET] Het ontvangen van data via een webservice

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik verstuur een array zelf gemaakte klasse via een webservice.
Dat werkt goed, ik kan mooi mijn data zien tijden het debuggen, maar als ik de objecten wil terug casten naar een object gaat het mis:

Dit is wat ik in mijn debug schermpje zie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
-   Adressen    {System.Array}  System.Array
+   (0) {Test.WebReference1.Adres}
    TestXL.WebReference1.Adress
-   (1) {Test.WebReference1.Adres}\ TestXL.WebReference1.Adress
    Object  {Test.WebReference1.Adres}  Object
    voornaam    "Jan "  String
    achternaam  "Jansen"    String
    adres   " " String
    postcode    " " String
    plaats  " " String
    telefoonnummer  " " String
    mobielnummer    " " String
+   (2) {TestXL.WebReference1.Adres}    TestXL.WebReference1.Adress


Ik kun nu gewoon Adressen(1).Voornaam aangspreken, maar niet de de methods van het object (die stuurt ie niet mee), dus wil het "object" casten.

code:
1
2
dim myAdres as Adres
myAdres = CType(Adressen(1),Adres)


dit werkt dus NIET. Ik krijg een Invallid type cast error.

Kent iemand dit probleem, of heeft iemand een oplossing hiervoor?
Alvast bedankt

Verwijderd

Gebruik je wel Adres uit de goede namespace? En niet 'zomaar' een Adres class?
In VS.NET wordt automatisch een class aangemaakt bij het binden aan een WS, die moet je gebruiken, dacht ik...

Verwijderd

Topicstarter
Ja, ik weet zeker dat ik de goede klasse gebruik.

Maar heb object dat ik terug krijg, zegt wel dat ie een Adres is, maar ik heb alleen de "variabele" van het object, zelfs niet alle properties.
Maar ik kan heb object niet casten..... en heb geen zin om alles weer "met de hand" te vullen.

Verwijderd

En als je doet

Visual Basic:
1
2
dim myAdres as Test.WebReference1.Adres
myAdres = CType(Adressen(1), Test.WebReference1.Adres)

helpt dat?

Verwijderd

Topicstarter
Dit werkt wel, maar dan krijg ik niet hezelfde object als dat ik in het begin erin stopte.

Ik krijg nu echt een "structure" terug, met alleen data erin, zonder enige methods....

Verwijderd

heb je al naar de tool XSD gekeken, dat met Visual Studio wordt meegeleverd? Volgens mij moet je dit gebruiken.

Verwijderd

Verwijderd schreef op 28 April 2003 @ 11:58:
Dit werkt wel, maar dan krijg ik niet hezelfde object als dat ik in het begin erin stopte.

Ik krijg nu echt een "structure" terug, met alleen data erin, zonder enige methods....
Volgens mij klopt dat. Want je kan met webservices niet de methodes aanroepen op de webservice via het object wat je terug krijgt.

In de webservice moet je dan een methode maken die gegeven een Adres 'structuur' class doet wat je wilt...

Beetje onhandig, maar goed, het werkt wel :)

Verwijderd

Topicstarter
ik heb nu dit in mijn service staan:
code:
1
2
3
4
    <WebMethod(), XmlIncludeAttribute(GetType(ArrayList)), XmlIncludeAttribute(GetType(Adres))> Public Function getAdressen() As ArrayList
        Dim _app As New Application.Adressenboekje()
        Return _app.getAddressenBoekje
    End Function
Pagina: 1