Tableau passé en paramètre d'un webservice.. [Résolu]

Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Dernière intervention
27 janvier 2010
- - Dernière réponse : cs_ranas
Messages postés
2
Date d'inscription
vendredi 20 février 2009
Dernière intervention
31 mars 2011
- 31 mars 2011 à 13:14
Bonjour,


J'ai remarqué lors de mes développements que lorsque je passe un
tableau en paramètre à une webméthode , la valeur de ses éléments ne
sont pas modifiées après l'appel à cette web méthode ( ils le seraient
lors de l'appel d'une méthode classique ) est ce vrai ?


y'aurait il un moyen de contourner le problème , car j'ai une liste de
valeurs à renvoyer dont je ne connais pas la taille au préalable. J'ai
essayé avec List<> mais ce n'est pas sériaisable.


Une suggestion ?


Merci !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
3
Merci
Quelques erreurs lors de ma saisie et quelques précisions:
- Dans le code, tous les mots "List" sont à remplacer par List (merci à la textbox évoluée de codesource avec opéra qui a masqué ceci ^^)
- La dernière ligne de code est plutôt List list = (List)ser.Deserialize(sr);//Et non pas xmlSer ^^

De plus, il te faudra ajouter les namespaces suivant:
using System.Xml.Serialization;//Pour XmlSerializer
using System.IO;//Pour StringWriter et StringReader

Sur ce, je crois que c'est tout !

Billou_13

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonjour


Effectivement, un bon moyen (que j'utilise particulièrement) consiste à sérialiser son objet avant de la passer en paramètre à une méthode web service. De même le retour de celle-ci peut renvoyer un objet sérialisé.

Et tu peux sérialiser tout ce que tu veux; même les List<>.


Essais donc avec ce code :

XmlSerializer ser = new XmlSerializer(typeof(List));//ou tout autre type

StringWriter sw = new StringWriter();

ser.Serialize(sw, list);//Ta liste en argument

string xml = sw.ToString();//Ton xml


De même, en sens inverse:

XmlSerializer ser = new XmlSerializer(typeof(List));

StringReader sr = new StringReader(xml);//Ton xml

List list = (List)xmlSer.Deserialize(sr);//cast pour ton type et tu récupère ta liste


Voila tout, et je te conseille fortement de faire de ces traitements des méthodes statique afin de ne pas répéter ce code partout où tu en auras besoin.


Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Dernière intervention
27 janvier 2010
0
Merci
Bonne idée , je vais tester tout ça merci :)  
Commenter la réponse de cs_AmK
Messages postés
2
Date d'inscription
vendredi 20 février 2009
Dernière intervention
31 mars 2011
0
Merci
bnjr,
je voudrais savoir s'il vous plait comment faire pr afficher un tableau dans un champs Text en utilisant visual studio C sharp ."quelle est la fonction qui me permet de l'afficher ??"
Merci d'avance
Commenter la réponse de cs_ranas
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonjour,

Qu'entends tu par afficher un tableau dans un champs Text ? Il y a des milliers de façons de le faire.
Peux-tu nous dire concrêtement ce que contient ton tableau et ce que tu veux dans ton chamsp texte ?

De plus, peux-tu créer un nouveau sujet de conversation pour ta question car:
1) ta question n'a pas à voir avec le sujet de ce topic.
2) seul Amk et moi verront tes messages car ce topic est trop vieux pour que les gens viennent spontanément le voir.
Sinon, tu risques de ne pas avoir de réponse.

Merci,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
2
Date d'inscription
vendredi 20 février 2009
Dernière intervention
31 mars 2011
0
Merci
Merci bcp j'ai résolu le pb en utilisant juste la fonction Console.Out.WriteLine au lieu de return (tab);
Commenter la réponse de cs_ranas

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.