Passer un objet en paramètre dans une webmethod (service web)

adrix69 Messages postés 6 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 21 avril 2009 - 21 avril 2009 à 10:31
adrix69 Messages postés 6 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 21 avril 2009 - 21 avril 2009 à 11:32
Bonjour à tous,

je m'arrache les cheveux pour faire passer un objet dans les paramètres d'une méthode de mon service web!

Mon objet est constitué de 3 classes. Lorsque je le sérialise, il n'y a aucun problème, j'obtiens bien un fichier xml.

XmlSerializer xs = new XmlSerializer(typeof(monObjet));
            using (StreamWriter wr = new StreamWriter("monObjetSerialise.xml"))
            {
                xs.Serialize(wr, _message);
            }

Mon problème vient lorsque je veux passer cet objet en paramètre dans une webmethod

webmethod:
[WebMethod]
    [XmlInclude(typeof(monObjet))]
    public string sendMessage(object obj)
    {
        return "toto";
    }

appel:
webService.sendMessage(monObjet);

erreur:
There was an error generating the XML document.

voilà, pouvez vous m'aider avant que je sois chauve, merci bien!

Adrien

4 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
21 avril 2009 à 10:41
Bonjour,

Pourquoi demandes-tu le type object dans ta webmethod.
Tu peux tout simplement faire:
[WebMethod]
public string sendMessage(monObject obj)
{
   return "toto";
}

A partir du moment où monObject est serializable en XML, cela ne devrait pas poser de problème.

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
adrix69 Messages postés 6 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 11:15
Merci, mais j'ai une erreur si je fais ça:

The best overloaded method match for 'cpa_clientw.cpa_server.Service.sendMessage(cpa_clientw.cpa_server.message)' has some invalid arguments   
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
21 avril 2009 à 11:26
Peux-tu nous envoyer plus de code sur ton problème:
1) la signature (définition) de ta WebMethod. Juste l'interface sans le corps de la méthode.
2) ton code permettant d'appeler la méthode.

Merci,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
adrix69 Messages postés 6 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 11:32
webmethod:

 [WebMethod]
    public string sendMessage(Message.message obj)
    {
    }

appel:
 cpa_server.Service webService = new cpa_server.Service();
            MessageBox.Show(webService.sendMessage(_message));
0
Rejoignez-nous