Bonjour,
J'écris mon premier web service mais je ne comprends pas bien comment écrire correctement une méthode web qui retourne un document xml (à des fins d'appel Ajax de la part du client pour ensuite binder les données dans un Repeater, ça m'a l'air bien comme conception, non ?).
Le thread suivant du forum est incomplet pour m'aider, et sur google je n'arrive pas à trouver.
http://www.developpez.net/forums/d62...t-web-service/
Voici l'erreur de compilation que j'ai au lancement du test du web service (web service ok si je renvoie une String et pas un XDocument).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [WebMethod] public XDocument GetChildElementsFolderBrowsing() { return new XDocument(); // en fait j'en retourne un non vide comme défini plus bas, mais ça ne veut pas non plus }Au départ j'avais testé ceci pour construire le XDocument, je ne sais pas si c'est correct... mais pas moyen de faire un test unitaire avec une bête classe avec un Main qui appelle ma classe qui génère le XDocument (classe différente de celle du service web) dans un projet web ? (VS Express 2008) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [InvalidOperationException: La méthode WebService.GetChildElementsFolderBrowsing ne peut pas être réfléchie.] System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo methodInfo, Boolean client, XmlReflectionImporter xmlImporter, SoapReflectionImporter soapImporter, String defaultNs) +6904
Merci pour vos conseils,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 XDocument xDoc = new XDocument(); xDoc.Add(new XDeclaration("1.0", "utf-8", "yes")); XElement e = new XElement("data"); e.Add(new XElement("id", "elt1")); e.Add(new XElement("label", "element 1")); e.Add(new XElement("id", "elt2")); e.Add(new XElement("label", "element 2")); xDoc.Add(e); return xDoc;
Barbara
Partager