Je viens de frapper un énorme mur de briques avec Paypal. J'avais créé un projet C # régulier pour créer des classes wrapper en utilisant leur WSDL.
Si vous créez un projet non Web, la seule option que vous obtenez pour ajouter un wsdl est une référence de service Web. Et cela crée un peu le même ensemble de classes proxy qu'une référence Web le ferait, mais pas vraiment ... cela ajoute plus que même les gars de PayPal ne sont pas au courant.
J'ai donc cherché pendant tout ce temps la bonne interface dans cette liste de classes proxy à utiliser comme service (SoapBinding) et PayPalAPIAASoapBinding
je n'y étais pas, j'ai continué à dire à notre point de contact PayPal.
Je n'ai pu voir que les 2 interfaces suivantes qui m'ont semblé ce que j'avais besoin d'utiliser car je n'ai pas vu de PayPalAPIAASoapBinding
ce que vous POUVEZ voir dans une référence de service basée sur une référence Web:
PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient
J'ai donc compris, oh, j'avais probablement créé une référence de service par rapport à une référence Web, quelle référence Web est une option dans un projet Web. Mais je ne veux pas que ma référence de service soit étroitement liée à mon projet Web. C'est pourquoi j'ai créé le projet C #.
Alors, qu'est-ce qu'une référence de service par rapport à une référence Web? Et comment suis-je censé séparer cela en un autre projet si Service Reference va me lancer une boucle et me donner un ensemble d'interfaces différentes de celles d'une référence Web?
Aussi, pour rendre les choses encore PLUS déroutantes, VS 2008 a un projet d'application de service Web.
Alors qu'est-ce que j'utilise? Nous utilisons le framework .NET 3.5 et nous ne sommes pas prêts à passer à WCF . Puis-je toujours utiliser la nouvelle référence de service même si je n'utilise pas WCF ou quoi? Si vous utilisez .NET 3.5 et pas encore WCF et que vous souhaitez toujours effectuer des services Web de base, suivez-vous toujours la route de référence de service et n'utilisez tout simplement pas le framework WCF? Cela signifie-t-il qu'il peut encore être utilisé comme une référence Web .NET 2.0, juste que vous allez obtenir une génération entièrement différente du WSDL?
Réponses:
L'ajout de référence Web est l'ancienne technologie de services Web ASP.NET (ASMX) obsolète (utilisant uniquement XmlSerializer pour vos affaires) - si vous faites cela, vous obtenez un client ASMX pour un service Web ASMX. Vous pouvez le faire dans n'importe quel projet (application Web, site Web, application console, Winforms - vous le nommez).
Ajouter une référence de service est la nouvelle façon de le faire, en ajoutant une référence de service WCF, ce qui vous donne un modèle de service beaucoup plus avancé et beaucoup plus flexible que de simples éléments ASMX.
Puisque vous n'êtes pas prêt à passer à WCF, vous pouvez également ajouter l'ancienne référence Web, si vous le devez vraiment: lorsque vous faites un "Ajouter une référence de service", dans la boîte de dialogue qui apparaît, cliquez sur le bouton [Avancé ] dans le coin gauche du bouton:
et dans la boîte de dialogue suivante qui apparaît, sélectionnez le bouton [Ajouter une référence Web] en bas.
la source
Si je comprends bien votre question:
Pour ajouter une référence de service Web .net 2.0 au lieu d'une référence de service WCF, cliquez avec le bouton droit sur votre projet et cliquez sur «Ajouter une référence de service».
Cliquez ensuite sur "Avancé .." en bas à gauche de la boîte de dialogue.
Cliquez ensuite sur "Ajouter une référence Web .." en bas à gauche de la boîte de dialogue suivante.
Vous pouvez maintenant ajouter une référence Web SOAP régulière comme vous le recherchez.
la source
L'ajout d'une référence de service vous permet de créer un client WCF, qui peut être utilisé pour parler à un service Web standard à condition d'utiliser la liaison appropriée. L'ajout d'une référence Web vous permettra de créer uniquement une référence de service Web (c'est-à-dire SOAP).
Si vous êtes absolument certain que vous n'êtes pas prêt pour WCF (vous ne savez vraiment pas pourquoi), vous devez créer une référence de service Web régulière.
la source
En fin de compte, les deux font la même chose. Il existe quelques différences dans le code: les services Web n'ajoutent pas d'espace de noms racine du projet, mais Service Reference ajoute des classes de service à l'espace de noms du projet. La
ServiceSoapClient
classe reçoit un nom différent, ce qui n'est pas important. En travaillant avec TFS, je préfère utiliser Service Reference car il fonctionne mieux avec le contrôle de code source. Les deux fonctionnent avec les protocoles SOAP.Je trouve préférable d'utiliser le Service Reference car il est neuf et sera donc mieux entretenu.
la source