Outil WCF dotnet-svcutil pour .NET Core
L’outil dotnet-svcutil Windows Communication Foundation (WCF) est un outil .NET qui récupère les métadonnées d’un service web sur un emplacement réseau ou dans un fichier WSDL, puis génère une classe WCF contenant des méthodes de proxy clientes pour accéder aux opérations du service web.
Comme l’outil Métadonnées de modèle de service - svcutil pour les projets .NET Framework, dotnet-svcutil est un outil en ligne de commande pour générer une référence de service web compatible avec les projets .NET Core et .NET Standard.
L’outil dotnet-svcutil est une option alternative au fournisseur de services connectés Visual Studio WCF Web Service Reference inclus dans Visual Studio 2017 version 15.5. L’outil dotnet-svcutil, en tant qu’outil .NET, est disponible sur les plateformes Linux, macOS et Windows.
Important
Vous devez référencer des services uniquement à partir d’une source approuvée. L’ajout de références à partir d’une source non fiable peut compromettre la sécurité.
Prérequis
- Kit SDK .NET Core 2.1 (ou version ultérieure)
- Votre éditeur de code favori
Prise en main
L’exemple suivant explique les étapes à suivre pour ajouter une référence de services web à un projet web .NET Core et appeler le service. Vous allez créer une application web .NET Core nommée HelloSvcutil et ajouter une référence à un service web qui implémente le contrat suivant :
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
Supposons dans cet exemple que le service web sera hébergé à l’adresse suivante : http://contoso.com/SayHello.svc
.
À partir d’une fenêtre de commande Windows, macOS ou Linux, procédez comme suit :
Créez un répertoire nommé HelloSvcutil pour votre projet et faites-en votre répertoire actuel, comme dans l’exemple suivant :
mkdir HelloSvcutil cd HelloSvcutil
Créez un projet web C# dans ce répertoire avec la commande
dotnet new
:dotnet new web
Installez le package NuGet
dotnet-svcutil
comme un outil CLI :dotnet tool install --global dotnet-svcutil
Exécutez la commande dotnet-svcutil pour générer le fichier de référence de services web :
dotnet-svcutil http://contoso.com/SayHello.svc
Le fichier généré est enregistré sous HelloSvcutil/ServiceReference/Reference.cs. L’outil dotnet-svcutil ajoute également au projet les packages WCF requis par le code proxy comme références de package.
Utiliser la référence de services
Restaurez les packages WCF à l’aide de la commande
dotnet restore
, comme suit :dotnet restore
Recherchez le nom de la classe cliente et l’opération que vous souhaitez utiliser.
Reference.cs
contient une classe qui hérite deSystem.ServiceModel.ClientBase
, avec des méthodes permettant d’appeler des opérations sur le service. L’objectif de cet exemple est d’appeler l’opération Hello du service SayHello.ServiceReference.SayHelloClient
est le nom de la classe cliente et comporte une méthodeHelloAsync
servant à appeler l’opération.Ouvrez le fichier
Startup.cs
dans votre éditeur et ajoutez en haut une directiveusing
pour l’espace de noms de la référence de services :using ServiceReference;
Modifiez la méthode
Configure
de façon à appeler le service web. Pour cela, créez une instance de la classe qui hérite deClientBase
et appelez la méthode sur l’objet client :public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { var client = new SayHelloClient(); var response = await client.HelloAsync(); await context.Response.WriteAsync(response); }); }
Exécutez l’application en utilisant la commande
dotnet run
, comme suit :dotnet run
Accédez à l’URL figurant dans la console (par exemple,
http://localhost:5000
) dans votre navigateur web.
La sortie suivante devrait s'afficher : « Hello dotnet-svcutil! »
Pour obtenir une description détaillée des paramètres de l’outil dotnet-svcutil
, appelez l’outil en passant le paramètre d’aide comme suit :
dotnet-svcutil --help
Commentaires et questions
Si vous avez des questions ou des commentaires, ouvrez un problème sur GitHub. Vous pouvez également consulter les questions ou problèmes existants dans le dépôt WCF sur GitHub.
Notes de publication
- Pour obtenir des informations à jour sur les versions, notamment les problèmes connus, consultez les Notes de publication.