2009-09-17 5 views
0

Je suis impliqué dans un projet qui appelait un service Web de façon dynamique.Création d'une enveloppe SOAP par programme et inclusion dans HttpWebRequest dans .NET

J'ai trouvé un moyen d'appeler une méthode webservice qui n'a aucun paramètre de méthode, mais maintenant j'ai besoin d'appeler des méthodes web qui ont des paramètres.

Je me demandais s'il y avait de bons exemples sur la façon dont je pourrais créer une enveloppe de savon et comment je pourrais l'inclure dans mon HttpWebRequest?

Merci beaucoup!

Cheers, Ann

+0

Même si vous connaissiez la structure de l'enveloppe, comment sauriez-vous quelles données y mettre? –

+0

Je sais essentiellement quelles données doivent être transmises entre les services Web car j'ai écrit les deux services Web. Je ne pense pas que les paramètres de données que je dois transmettre changent souvent, alors j'ai une définition complète des données dont ils ont besoin. – mallows98

Répondre

-1

Y at-il une raison quelconque vous voulez générer des enveloppes SOAP manuellement et utiliser HttpWebRequest pour appeler un service Web lorsque vous pouvez générer un proxy client à partir du WSDL (en utilisant svcutil.exe ou wsdl.exe) et laissez le cadre faire le gros du travail pour vous?

Normalement, les services Web exposent un contrat qui décrit les opérations que vous pouvez invoquer et les types impliqués permettant aux clients de le découvrir et de l'utiliser.

+1

Merci pour votre réponse. Il y a une raison pour laquelle je dois le faire manuellement ... Je suis en train de créer un service générique d'envoi/de génération de courriels qui extraira les données de courriel de différents clients. J'ai envisagé de générer un proxy à partir du WSDL, mais je suppose que l'inconvénient est que si nous essayons d'ajouter une nouvelle application web pour les parties prenantes qui aurait besoin d'envoyer des emails, je devrais recompiler le code à chaque fois. temps. Je me suis peut-être trompé dans cette hypothèse, mais si vous pouviez suggérer un autre moyen de le faire, je l'apprécierais vraiment! À la votre! – mallows98

0

Qu'en est-il de la sérialisation avec SoapFormatter?

SoapFormatter Class

Vous pouvez également utiliser des classes tapés fortes en utilisant des interfaces et des assemblages chargés via dynamiquement

Assembly a = Assembly.LoadFile("Path"); 

et vous serez en mesure de "hot-plug" nouvelles procurations ou d'autres types.

+0

Je vais essayer de le faire. Merci pour cela! :) – mallows98

+0

Hi mallows98, Avez-vous réussi à résoudre ce problème? J'ai eu un problème similaire ici: http://stackoverflow.com/questions/1609294/invoking-an-asp-net-web-service-method-via-an-http-request –

+0

Salut Shoko, Non, j'ai essentiellement redessiné mon code et utilisé le modèle de services Web standard dans lequel vous devez définir votre service Web comme dynamique et vous assurer que toutes les signatures de méthode auxquelles j'accéderai pour mes services Web portent le même nom. La raison pour laquelle j'ai redessiné mon code est que je manquais de temps pour le projet et que je devais faire quelque chose rapidement. Espérons que cela aide! – mallows98

Questions connexes