Question

J'essaie de créer une application qui me permettra d'exécuter une méthode spécifiée au moment de l'exécution sur un service Web quelconque (l'URL que je vais également fournir au moment de l'exécution). J'ai compris comment utiliser Type.InvokeMember pour exécuter la méthode arbitraire, mais comment puis-je spécifier le service Web à consommer sans créer de classe proxy?

J'ai trouvé comment appeler un service Web sans une référence Web? qui m'aidera si j'ai déjà le WSDL et que seule l'URL va changer, mais j'aimerais pouvoir appeler n'importe quel service Web et récupérer le résultat.

Merci.

Était-ce utile?

La solution

Vous devriez jeter un coup d'œil à Dynamic Proxy for WCF (je suis désolé, mais il semble que je trouve un lien vers celui-ci actuellement) - c'est une bibliothèque qui vous permet d'inspecter les services au moment de l'exécution (s'ils publient leurs métadonnées). et invoque également des méthodes (nul besoin de métadonnées pour le faire).

Modifier: en fait, il semblerait qu’il existe un projet sur Codeplex dans ce but: SIF

Autres conseils

Pour WCF, vous devez disposer de la classe proxy ou de l'interface implémentée par le service. Il est donc peu probable que vous puissiez le faire via WCF (WCF est infiniment extensible, cependant, il peut y avoir un moyen.

Vous pouvez toujours créer un objet HttpWebRequest et créer un objet "old-school". appelez le service et analysez vous-même les résultats.

Vous devriez pouvoir passer votre appel en utilisant simplement WebRequest . Vous devrez former vous-même le corps du message , mais ce n'est pas très difficile .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top