Invoquer une methode d'un web service

Résolu
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009 - 17 janv. 2009 à 17:42
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 - 18 janv. 2009 à 13:15
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
18 janv. 2009 à 13:15
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.
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
17 janv. 2009 à 23:32
Salut

Invoke est a ma connaissance pour les methodes
InvokeMember est pour les propriétés des classes.
0
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009
18 janv. 2009 à 13:05
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.
0