WebService List [Résolu]

Signaler
Messages postés
66
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
10 août 2007
-
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007
-
bonjour, voila je vous expose mon problème qui n'est pas très compliqué mais qui m'enquiquine un peu lol.
je programme un web service en utilisant le protocole soap(bref), j'ai une web method qui possede un type de retour de type (list<object>)
et quand je recupere cette methode (grace au web reference)
AppliPocket.localhost.Service monService new AppliPocket.localhost.Service();  List<Onglet> listOnglet monService.chargerOnglet();

il me dit que chargerOnglet est un tableau d'onglet alors qu'en fait chargerOnglet renvoie un list<Onglet>
Ps: en fait mon client tourne sur un smart device.

Alors est ce que soap modifie mon type de retour pour le transmettre via tcp en un tableau???? bref je reste bouche bee!!!!
merci d'avance pour votre aide

mat.

3 réponses

Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

Si tu n'instancie pas ton objet "Onglet" dans le webService, VS ne l'exposeras pas implicitement dans la description du WSDL !!!
Tu dois ajouter:
[System.Xml.Serialization.XmlInclude(typeof(Onglet
))]; avant la declaration de ta classe.

Je ne suis pas sur que le problème vient d'ici !! mais essaie quand même.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Le type generic list<onglet> n'est pas un type reconnu par le protocole SOAP, par contre ce dernier connait le type array. D'ou a mon avis la conversion lors de la sérialisation de ton objet.

::|The S@ib|:: MVP C#.NET
Messages postés
66
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
10 août 2007

oki j'ai pu parvenir a to array(ter) ma liste en un tableau d'ecran (mon objet) cependant quand j'essai de récupérer le tableau grace a un client (basé sur une apllication smart device ) l'émulateur de visual studio 2005 n'arrive pas à récupérer la méthode.
erreur dans this.invoque(chargerEcran,arg[0]);

dans un tutoriel j'ai vu qu'il y avait des souci pour le bébugage sous l'émulateur, il fallait changer
public Service(){
    //this.URL = "http://localhost:2296/Service.asmx
    this.URL = "http://nomDeLaMachine:2296/Service.asmx
    }
Ps, mon serveur Web est réalisé grace au serveur web intégré de visual studio c'est pour cela que j'utilise le port 2296 au lieu du port web.

Voila si vous avez rencontré le meme probleme n'hésité pas a faire part de vos réactions!!!!merci d'avance
mat.