Condividi tramite


Strumento dotnet-svcutil WCF per .NET Core

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

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

Lo strumento dotnet-svcutil è un'alternativa al provider di servizi connessi di Visual Studio "Riferimento ai servizi web WCF", introdotto per la prima volta con Visual Studio 2017 versione 15.5. Lo strumento dotnet-svcutil come strumento .NET è disponibile su più piattaforme in Linux, macOS e Windows.

Importante

È consigliabile fare riferimento solo ai servizi da un'origine attendibile. L'aggiunta di riferimenti da un'origine non attendibile può compromettere la sicurezza.

Prerequisiti

Come iniziare

L'esempio seguente illustra i passaggi necessari 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 si aggiungerà un riferimento a un servizio Web che implementa il contratto seguente:

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

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

Da una finestra di comando Windows, macOS o Linux seguire questa procedura:

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

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

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

    dotnet tool install --global dotnet-svcutil
    
  4. Eseguire il comando dotnet-svcutil per generare il file di riferimento del 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 anche al progetto i pacchetti WCF appropriati richiesti dal codice proxy come riferimenti al pacchetto.

Uso del riferimento al servizio

  1. Ripristinare i pacchetti WCF usando il dotnet restore comando come segue:

    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 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 denominato HelloAsync che può essere usato per chiamare l'operazione.

  3. Apri il file Startup.cs nel tuo editor e aggiungi una direttiva using per lo spazio dei nomi di riferimento del servizio nella parte superiore:

    using ServiceReference;
    
  4. Modificare il Configure metodo per richiamare il servizio Web. Per farlo, crea un'istanza della classe che eredita da ClientBase e chiama 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 dotnet run comando come segue:

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

Verrà visualizzato l'output seguente: "Hello dotnet-svcutil!"

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

dotnet-svcutil --help

Feedback e domande

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

Note di rilascio

  • Per informazioni sulla versione aggiornate, inclusi i problemi noti, vedere le note sulla versione.

Informazione