Sdílet prostřednictvím


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

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:

  1. 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
    
  2. Pomocí následujícího příkazu v adresáři vytvořte nový webový projekt jazyka dotnet new C#:

    dotnet new web
    
  3. dotnet-svcutil Nainstalujte balíček NuGet jako nástroj rozhraní příkazového řádku:

    dotnet tool install --global dotnet-svcutil
    
  4. 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

  1. Pomocí následujícího příkazu obnovte balíčky dotnet restore WCF:

    dotnet restore
    
  2. Vyhledejte název třídy klienta a operace, kterou chcete použít. Reference.cs bude obsahovat třídu, která dědí z System.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.

  3. Otevřete soubor v editoru Startup.cs a přidejte direktivu using pro obor názvů odkazu na službu v horní části:

    using ServiceReference;
    
  4. Upravte metodu Configure pro vyvolání webové služby. Provedete to vytvořením instance třídy, která dědí z ClientBase 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);
        });
    }
    
    
  5. Spusťte aplikaci pomocí následujícího dotnet run příkazu:

    dotnet run
    
  6. 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.

Poznámky k verzi

  • V poznámkách k verzi najdete aktualizované informace o verzi, včetně známých problémů.

Informační