Condividi tramite


Strumento WCF dotnet-svcutil per .NET Core

Lo strumento Windows Communication Foundation (WCF) dotnet-svcutil è uno strumento .NET che consente di recuperare metadati da un servizio Web, in un percorso di rete o da un file WSDL e di generare una classe WCF contenente metodi del proxy client che accedono alle operazioni del servizio Web.

Analogo allo strumento Service Model Metadata - svcutil per i progetti .NET Framework, dotnet-svcutil è uno strumento da riga di comando per la generazione di un riferimento al servizio Web compatibile con i progetti .NET Core e .NET Standard.

Lo strumento dotnet-svcutil rappresenta un'alternativa al provider di servizi connessi di Visuali Studio WCF Web Service Reference, disponibile per la prima volta con Visual Studio 2017 versione 15.5. dotnet-svcutil è disponibile come strumento .NET multipiattaforma in Linux, macOS e Windows.

Importante

Si consiglia di fare riferimento solo a servizi provenienti da un'origine attendibile. L'aggiunta di riferimenti da un'origine non attendibile può compromettere la sicurezza.

Prerequisiti

Introduzione

L'esempio seguente illustra la procedura necessaria per aggiungere un riferimento al servizio Web a un progetto Web .NET Core e richiamare il servizio. Si creerà un'applicazione Web .NET Core denominata HelloSvcutil e verrà aggiunto un riferimento a un servizio Web che implementa il contratto seguente:

[ServiceContract]
public interface ISayHello
{
    [OperationContract]
    string Hello(string name);
}

In questo esempio si presuppone che il servizio Web sia ospitato all'indirizzo seguente: http://contoso.com/SayHello.svc

Da una finestra di comando di Windows, macOS o Linux eseguire la procedura seguente:

  1. Creare una directory denominata HelloSvcutil per il progetto e renderla la directory corrente, come nell'esempio seguente:

    mkdir HelloSvcutil
    cd HelloSvcutil
    
  2. Creare un nuovo progetto Web C# in tale directory usando il comando dotnet new come indicato di seguito:

    dotnet new web
    
  3. Installare il pacchetto NuGet dotnet-svcutil come strumento della riga di comando:

    dotnet tool install --global dotnet-svcutil
    
  4. Eseguire il comando dotnet-svcutil per generare il file di riferimento al servizio Web come indicato di seguito:

    dotnet-svcutil http://contoso.com/SayHello.svc
    

Il file generato viene salvato come HelloSvcutil/ServiceReference/Reference.cs. Lo strumento dotnet-svcutil aggiunge inoltre al progetto i pacchetti WCF appropriati richiesti dal codice del proxy come riferimenti ai pacchetti.

Uso del riferimento al servizio

  1. Ripristinare i pacchetti WCF usando il comando dotnet restore come indicato di seguito:

    dotnet restore
    
  2. Trovare il nome della classe client e dell'operazione da usare. Reference.cs conterrà una classe che eredita da System.ServiceModel.ClientBase, con i metodi che possono essere usati per chiamare operazioni sul servizio. In questo esempio si vuole chiamare l'operazione Hello del servizio SayHello. ServiceReference.SayHelloClient è il nome della classe client e ha un metodo chiamato HelloAsync che può essere usato per chiamare l'operazione.

  3. Aprire il file Startup.cs nell'editor e quindi aggiungere una direttiva using per lo spazio dei nomi di riferimento al servizio nella parte superiore:

    using ServiceReference;
    
  4. Modificare il metodo Configure per richiamare il servizio Web. Per eseguire questa operazione, creare un'istanza della classe che eredita da ClientBase e chiamare il metodo sull'oggetto 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. Eseguire l'applicazione usando il comando dotnet run come indicato di seguito:

    dotnet run
    
  6. Passare all'URL elencato nella console di (ad esempio, http://localhost:5000) nel Web browser.

Si dovrebbe vedere l'output seguente: "Hello dotnet-svcutil!"

Per una descrizione dettagliata dei parametri dello strumento dotnet-svcutil, richiamare lo strumento passando il parametro help come indicato di seguito:

dotnet-svcutil --help

Commenti, suggerimenti e domande

In caso di domande o commenti e suggerimenti, segnalare un problema in GitHub. È anche possibile rivedere domande o problemi esistenti nel repository WCF in GitHub.

Note sulla versione

  • Fare riferimento alle note sulla versione per informazioni aggiornate sulle versioni, compresi i problemi noti.

Informazioni