WCF dotnet-svcutil-verktyg för .NET Core
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 HelloSvcutil
Skapa ett nytt C#-webbprojekt i den katalogen med hjälp av kommandot enligt
dotnet new
följande:dotnet new web
dotnet-svcutil
Installera NuGet-paketet som ett CLI-verktyg:dotnet tool install --global dotnet-svcutil
Kö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 tjänstreferensen
Återställ WCF-paketen med hjälp av kommandot på
dotnet restore
följande sätt:dotnet restore
Leta reda på namnet på den klientklass och åtgärd som du vill använda.
Reference.cs
innehå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 heterHelloAsync
som kan användas för att anropa åtgärden.Startup.cs
Öppna filen i redigeringsprogrammet och lägg till ettusing
direktiv för tjänstreferensens namnområde högst upp:using ServiceReference;
Configure
Redigera metoden för att anropa webbtjänsten. Det gör du genom att skapa en instans av klassen som ärver frånClientBase
och 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 run
följande sätt:dotnet run
Gå 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!"
En detaljerad beskrivning av dotnet-svcutil
verktygsparametrarna finns i verktyget som skickar hjälpparametern på följande sätt:
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.
Viktig information
- Se viktig information för uppdaterad information om versioner, inklusive kända problem.