Invoquer une methode d'un web service

Résolu
Signaler
Messages postés
16
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
21 février 2009
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Bonjour,

J'ai peu d'expérience dans les webservice.
Cependant, j'aimerais savoir la différence entre les méthodes "Invoke" et "InvokeMember".

Le code ci-dessous a pour but d'invoquer une méthode d'un web service distant.

System.Reflection.Assembly assembly = results.CompiledAssembly;
object proxy = assembly.CreateInstance(type.FullName);
MethodInfo my_methode = proxy.GetType().GetMethod("FindCountryAsString");

//resultat au format XML
string resultat = (string)(my_methode.Invoke(proxy, BindingFlags.Default, null, new object[] { "45.78.45.78" }, System.Globalization.CultureInfo.CurrentCulture));

//erreur : MissingMethodException
resultat = (int)proxy.GetType().InvokeMember(my_methode.Name,
BindingFlags.InvokeMethod | BindingFlags.Public, null, proxy, new object[] { "45.78.45.78" });

quand j'utilise InvokeMember j'ai une erreur, pourquoi ?

merci.

3 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Salut

C'est possible de serialiser dans un autre format
Il existe par exemple JSON

http://blogs.developpeur.org/cyril/archive/2008/04/17/communication-grille-extjs-vers-wcf-ou-webservice-asmx-ajax-via-json.aspx

http://www.codeproject.com/KB/WCF/Serialization_in_WCF.aspx

Pour le invoke
http://www.csharpfr.com/code.aspx?ID=29068

Je te donnes des pistes (a toi de faire le menage en focntion de tes besoins et contraintes)
Et n'hesite pas a mettre la solution adoptée dans la suite du post pour m'éclairer sur ce vaste sujet et en faire profiter la communauté.
Voir faire un source ou un tutoriel qui sera liés a ce post.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Salut

Invoke est a ma connaissance pour les methodes
InvokeMember est pour les propriétés des classes.
Messages postés
16
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
21 février 2009

bonjour,

merci de ta réponse.

Cependant cela reste un peu flou pour moi, j'ai l'exception "MissingMethodException" donc il doit normalement rechercher une méthode et non un attribut ...

est-ce quelqu'un aurait un exemple d'utilisation concret de "Invoke" et "Invokemember" ?

une autre question :

y a t-il une façon d'obtenir le résultat que retourne une méthode d'un Webservice autre que sous le format XML ?

par exemple au lieu d'obtenir ceci avec la méthode "Invoke" :
 <?XML version="1.0"?><valeur_vitesse>15</valeur_vitesse>

je voudrai avoir directement lorsque j'utilise "Invoke" la valeur "15"

merci.