Nástroj WCF dotnet-svcutil pro .NET Core
Nástroj Windows Communication Foundation (WCF) dotnet-svcutil je nástroj .NET, který načítá metadata z webové služby v síťovém umístění nebo ze souboru WSDL a generuje třídu WCF obsahující metody proxy klienta, které přistupují k operacím webové služby.
Podobně jako metadata modelu služby – nástroj svcutil pro projekty rozhraní .NET Framework je nástroj dotnet-svcutil nástroj příkazového řádku pro generování odkazu na webovou službu kompatibilní s projekty .NET Core a .NET Standard.
Nástroj dotnet-svcutil je alternativou k poskytovateli připojené služby sady VISUAL Studio odkaz na webovou službu WCF, který byl poprvé dodáván se sadou Visual Studio 2017 verze 15.5. Nástroj dotnet-svcutil jako nástroj .NET je k dispozici pro různé platformy v systémech Linux, macOS a Windows.
Důležité
Měli byste odkazovat pouze na služby z důvěryhodného zdroje. Přidání odkazů z nedůvěryhodného zdroje může ohrozit zabezpečení.
Požadavky
- Sada .NET Core 2.1 SDK nebo novější verze
- Váš oblíbený editor kódu
Začínáme
Následující příklad vás provede kroky potřebnými k přidání odkazu na webovou službu do webového projektu .NET Core a vyvolání služby. Vytvoříte webovou aplikaci .NET Core s názvem HelloSvcutil a přidáte odkaz na webovou službu, která implementuje následující kontrakt:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
V tomto příkladu předpokládejme, že webová služba bude hostována na následující adrese: http://contoso.com/SayHello.svc
V příkazovém okně Windows, macOS nebo Linux proveďte následující kroky:
Vytvořte adresář s názvem HelloSvcutil pro váš projekt a nastavte ho jako v následujícím příkladu:
mkdir HelloSvcutil cd HelloSvcutil
Pomocí následujícího příkazu v adresáři vytvořte nový webový projekt jazyka
dotnet new
C#:dotnet new web
dotnet-svcutil
Nainstalujte balíček NuGet jako nástroj rozhraní příkazového řádku:dotnet tool install --global dotnet-svcutil
Spuštěním příkazu dotnet-svcutil vygenerujte referenční soubor webové služby následujícím způsobem:
dotnet-svcutil http://contoso.com/SayHello.svc
Vygenerovaný soubor se uloží jako HelloSvcutil/ServiceReference/Reference.cs. Nástroj dotnet-svcutil také přidá do projektu příslušné balíčky WCF vyžadované kódem proxy serveru jako odkazy na balíčky.
Použití odkazu na službu
Pomocí následujícího příkazu obnovte balíčky
dotnet restore
WCF:dotnet restore
Vyhledejte název třídy klienta a operace, kterou chcete použít.
Reference.cs
bude obsahovat třídu, která dědí zSystem.ServiceModel.ClientBase
, s metodami, které lze použít k volání operací ve službě. V tomto příkladu chcete volat operaci Hello služby SayHello.ServiceReference.SayHelloClient
je název třídy klienta a má metodu,HelloAsync
kterou lze použít k volání operace.Otevřete soubor v editoru
Startup.cs
a přidejte direktivuusing
pro obor názvů odkazu na službu v horní části:using ServiceReference;
Upravte metodu
Configure
pro vyvolání webové služby. Provedete to vytvořením instance třídy, která dědí zClientBase
a volá metodu na objektu klienta: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); }); }
Spusťte aplikaci pomocí následujícího
dotnet run
příkazu:dotnet run
Ve webovém prohlížeči přejděte na adresu URL uvedenou v konzole (například
http://localhost:5000
).
Měl by se zobrazit následující výstup: "Hello dotnet-svcutil!"
Podrobný popis dotnet-svcutil
parametrů nástroje zobrazíte tak, že nástroj předá parametr nápovědy následujícím způsobem:
dotnet-svcutil --help
Zpětná vazba a dotazy
Pokud máte nějaké dotazy nebo zpětnou vazbu, otevřete problém na GitHubu. Můžete si také projít všechny existující otázky nebo problémy v úložišti WCF na GitHubu.