Je lancerais Visual Studio, créerais un projet web (ou une application console - peu importe).
Pour .Net Standard :
- Je cliquerais avec le bouton droit de la souris sur le projet et je choisirais "Ajouter une référence de service" dans le menu déroulant. Ajouter le menu contextuel.
- Je cliquerais sur Avancé, puis sur Ajouter une référence de service.
- Je récupère le chemin complet du fichier wsdl et le colle dans la barre d'adresse. Ensuite, lancez la flèche (bouton "go").
- S'il y a une erreur en essayant de charger le fichier, alors il doit y avoir une url cassée et non résolue que le fichier doit résoudre comme indiqué ci-dessous : Reportez-vous à cette réponse pour savoir comment réparer : Réponse de Stackoverflow à : Impossible de créer une référence de service pour le fichier wsdl
S'il n'y a pas d'erreur, il vous suffit de définir le NameSpace que vous souhaitez utiliser pour accéder au service et il sera généré pour vous.
Pour .Net Core
- Je ferais un clic droit sur le projet et je choisirais le service connecté dans le menu contextuel Ajouter.
- Je sélectionnerais Microsoft WCF Web Service Reference Provider dans la liste.
- J'appuierais sur Parcourir et sélectionnerais le fichier wsdl directement, je définirais l'espace de noms et je serais prêt à partir. Référez-vous à l'url de correction d'erreur ci-dessus si vous rencontrez une erreur.
L'une des méthodes ci-dessus générera un client WCF simple et très basique que vous pourrez utiliser. Vous devriez trouver une classe "YourservicenameClient" dans le code généré.
À titre de référence, le fichier cs généré se trouve dans votre Obj/debug(ou release)/XsdGeneratedCode et vous pouvez toujours trouver les dlls dans le dossier TempPE.
Le ou les services créés doivent avoir des méthodes pour chacune des méthodes définies dans le contrat WSDL.
Instanciez le client et appelez les méthodes que vous voulez appeler - c'est tout ce qu'il y a à faire !
YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
Si vous devez spécifier l'URL distante (sans utiliser celle créée par défaut), vous pouvez facilement le faire dans le constructeur du client proxy :
YourServiceClient client = new YourServiceClient("configName", "remoteURL");
où configName
est le nom du point de terminaison à utiliser (vous utiliserez tous les paramètres à l'exception de l'URL), et l'option remoteURL
est une chaîne représentant l'URL à laquelle se connecter (au lieu de celle contenue dans la configuration).
11 votes
J'ai voté en faveur de cette question parce que je pense que les autres utilisateurs auraient intérêt à y trouver une réponse. Je cherchais exactement cette question et je suis heureux de l'avoir trouvée ici.
0 votes
Je comprends que MS a été impliqué dans le développement précoce de WSDL et peut donc comprendre les capacités de prise en charge dans VS et .NET, comme ci-dessous, ce qui est très utile. Cependant, étant donné que la question n'était pas vraiment spécifique à la plate-forme, est-il possible d'améliorer encore ce support pour fournir des moyens alternatifs de le faire (c'est-à-dire Java, Python, etc.) ?