Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
- .NET Core 2.1 SDK o versioni successive
- Editor di codice preferito
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:
Creare una directory denominata HelloSvcutil per il progetto e impostala come tua directory corrente, come nell'esempio seguente:
mkdir HelloSvcutil cd HelloSvcutil
Creare un nuovo progetto Web C# in tale directory usando il
dotnet new
comando come segue:dotnet new web
Installare il
dotnet-svcutil
pacchetto NuGet come strumento dell'interfaccia della riga di comando:dotnet tool install --global dotnet-svcutil
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
Ripristinare i pacchetti WCF usando il
dotnet restore
comando come segue:dotnet restore
Trovare il nome della classe client e dell'operazione da usare.
Reference.cs
conterrà una classe che eredita daSystem.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 denominatoHelloAsync
che può essere usato per chiamare l'operazione.Apri il file
Startup.cs
nel tuo editor e aggiungi una direttivausing
per lo spazio dei nomi di riferimento del servizio nella parte superiore:using ServiceReference;
Modificare il
Configure
metodo per richiamare il servizio Web. Per farlo, crea un'istanza della classe che eredita daClientBase
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); }); }
Eseguire l'applicazione usando il
dotnet run
comando come segue:dotnet run
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.