Invoquer une methode d'un web service [Résolu]

cs_zwei 16 Messages postés mercredi 24 mai 2006Date d'inscription 21 février 2009 Dernière intervention - 17 janv. 2009 à 17:42 - Dernière réponse : nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 18 janv. 2009 à 13:15
3
Merci
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.

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 17 janv. 2009 à 23:32
0
Merci
Salut

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.