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 u nástrojů Service Model Metadata – svcutil pro projekty rozhraní .NET Framework je nástroj dotnet-svcutil nástrojem příkazového řádku pro generování odkazu na webovou službu kompatibilní s projekty .NET.

Nástroj dotnet-svcutil je alternativní možností k poskytovateli připojené služby ve Visual Studio Odkaz na webovou službu WCF. Jako nástroj .NET je nástroj dotnet-svcutil 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

  • Nejnovější sada .NET SDK
  • 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 a vyvolání služby. Vytvoříte webovou aplikaci .NET 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 Startup.cs v editoru a přidejte nahoře příkaz using pro obor názvů odkazu na službu:

    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!"

Pro podrobný popis parametrů nástroje dotnet-svcutil použijte příkaz s parametrem nápovědy takto:

dotnet-svcutil --help

Aktualizace odkazu na službu

Pokud se webová služba změní, můžete aktualizovat odkaz na službu tak, aby odrážel tyto změny. Možnost -u aktualizuje vygenerovaný kód na základě metadat z koncového bodu služby nebo souboru WSDL.

Aktualizace existujícího odkazu na službu:

dotnet-svcutil -u ./path/to/reference/folder

Referenční složka by měla obsahovat ConnectedService.json soubor, který byl vytvořen při počátečním přidání odkazu na službu. Nástroj přečte tento konfigurační soubor, který určí koncový bod služby a znovu vygeneruje kód proxy serveru s aktualizovanými metadaty.

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 vydání

Informace