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

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 :

  1. 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
    
  2. Créez un projet web C# dans ce répertoire avec la commande dotnet new :

    dotnet new web
    
  3. Installez le package NuGet dotnet-svcutil comme un outil CLI :

    dotnet tool install --global dotnet-svcutil
    
  4. 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

  1. Restaurez les packages WCF à l’aide de la commande dotnet restore, comme suit :

    dotnet restore
    
  2. Recherchez le nom de la classe cliente et l’opération que vous souhaitez utiliser. Reference.cs contient une classe qui hérite de System.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éthode HelloAsync servant à appeler l’opération.

  3. Ouvrez le fichier Startup.cs dans votre éditeur et ajoutez en haut une directive using pour l’espace de noms de la référence de services :

    using ServiceReference;
    
  4. Modifiez la méthode Configure de façon à appeler le service web. Pour cela, créez une instance de la classe qui hérite de ClientBase 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);
        });
    }
    
    
  5. Exécutez l’application en utilisant la commande dotnet run, comme suit :

    dotnet run
    
  6. 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.

Information