Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Verktyget Windows Communication Foundation (WCF) dotnet-svcutil är ett .NET-verktyg som hämtar metadata från en webbtjänst på en nätverksplats eller från en WSDL-fil och genererar en WCF-klass som innehåller klientproxymetoder som har åtkomst till webbtjänståtgärderna.
Precis som servicemodellmetadata – svcutil-verktyget för .NET Framework-projekt är dotnet-svcutil ett kommandoradsverktyg för att generera en webbtjänstreferens som är kompatibel med .NET Core- och .NET Standard-projekt.
Verktyget dotnet-svcutil är ett alternativ till den anslutna tjänstleverantören WCF Web Service Reference Visual Studio som först levererades med Visual Studio 2017 version 15.5. Verktyget dotnet-svcutil som ett .NET-verktyg är tillgängligt plattformsoberoende i Linux, macOS och Windows.
Viktigt!
Du bör bara referera till tjänster från en betrodd källa. Att lägga till referenser från en ej betrodd källa kan äventyra säkerheten.
Förutsättningar
- .NET Core 2.1 SDK eller senare versioner
- Din favoritkodredigerare
Komma igång
I följande exempel går vi igenom de steg som krävs för att lägga till en webbtjänstreferens till ett .NET Core-webbprojekt och anropa tjänsten. Du skapar ett .NET Core-webbprogram med namnet HelloSvcutil och lägger till en referens till en webbtjänst som implementerar följande kontrakt:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
I det här exemplet antar vi att webbtjänsten kommer att finnas på följande adress: http://contoso.com/SayHello.svc
Utför följande steg från ett Windows-, macOS- eller Linux-kommandofönster:
Skapa en katalog med namnet HelloSvcutil för projektet och gör den till din aktuella katalog, som i följande exempel:
mkdir HelloSvcutil cd HelloSvcutilSkapa ett nytt C#-webbprojekt i den katalogen med hjälp av kommandot enligt
dotnet newföljande:dotnet new webdotnet-svcutilInstallera NuGet-paketet som ett CLI-verktyg:dotnet tool install --global dotnet-svcutilKör kommandot dotnet-svcutil för att generera webbtjänstreferensfilen på följande sätt:
dotnet-svcutil http://contoso.com/SayHello.svc
Den genererade filen sparas som HelloSvcutil/ServiceReference/Reference.cs. Verktyget dotnet-svcutil lägger också till lämpliga WCF-paket i projektet som krävs av proxykoden som paketreferenser.
Använda en tjänstreferens
Återställ WCF-paketen med hjälp av kommandot
dotnet restorepå följande sätt:dotnet restoreLeta reda på namnet på den klientklass och åtgärd som du vill använda.
Reference.csinnehåller en klass som ärver frånSystem.ServiceModel.ClientBase, med metoder som kan användas för att anropa åtgärder i tjänsten. I det här exemplet vill du anropa SayHello-tjänstensHello-åtgärd .ServiceReference.SayHelloClientär namnet på klientklassen och har en metod som heterHelloAsyncsom kan användas för att anropa åtgärden.Startup.csÖppna filen i redigeringsprogrammet och lägg till ettusingdirektiv för tjänstreferensens namnområde högst upp:using ServiceReference;ConfigureRedigera metoden för att anropa webbtjänsten. Det gör du genom att skapa en instans av klassen som ärver frånClientBaseoch anropar metoden för klientobjektet: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); }); }Kör programmet med hjälp av kommandot på
dotnet runföljande sätt:dotnet runGå till url:en som visas i konsolen (till exempel
http://localhost:5000) i webbläsaren.
Du bör se följande utdata: "Hello dotnet-svcutil!"
För en detaljerad beskrivning av dotnet-svcutil verktygsparametrarna, kör verktyget med hjälpparametern enligt följande:
dotnet-svcutil --help
Feedback och frågor
Om du har frågor eller feedback öppnar du ett problem på GitHub. Du kan också granska eventuella befintliga frågor eller problem på WCF-lagringsplatsen på GitHub.
Versionsmeddelanden
- Se versionsinformation för uppdaterad information om versioner, inklusive kända problem.