IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

Service web avec retour xml (débutant)


Sujet :

Services Web

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 45
    Points : 49
    Points
    49
    Par défaut Service web avec retour xml (débutant)
    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
           }
    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
    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
    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;
    Merci pour vos conseils,

    Barbara

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Bonjour,

    La classe XDocument n'est pas sérialisable. C'est donc pour cela que tu as une erreur. Tu peux peut-être essayer avec la classe XElement (pas sûr que ça marche). La différence la plus notable avec la classe XDocument est que tu ne peux pas mettre des déclarations XML.

    Sinon, tu peux renvoyer juste un string qui contient ta chaine XML. Côté client, tu récupère le string et tu recrées ton XDocument avec la méthode static Parse(string).

    Dernière remarque, si tu veux créer un webservice qui sera appelé par du Javascript, je te conseille de renvoyer du JSON. C'est beaucoup plus facile à parser car c'est du Javascript . Tu trouveras un petit tuto sur les web services ASP.Net Ajax avec JSON ici.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2014, 09h50
  2. Service Web avec Axis et types complexes.
    Par Skyman37 dans le forum Services Web
    Réponses: 17
    Dernier message: 13/01/2011, 09h28
  3. deployer un service web avec axis 1.4 et websphere
    Par leo13 dans le forum Websphere
    Réponses: 1
    Dernier message: 10/05/2007, 10h45
  4. Déployer un service web avec weblogic 5.1
    Par karimspace dans le forum Weblogic
    Réponses: 1
    Dernier message: 13/02/2007, 17h49
  5. services web avec builder 6
    Par Seb des Monts dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/11/2006, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo