Compartilhar via


Ferramenta dotnet-svcutil do WCF para .NET Core

A ferramenta dotnet-svcutil do Windows Communication Foundation (WCF) é uma ferramenta .NET que recupera metadados de um serviço Web em um local de rede ou de um arquivo WSDL e gera uma classe WCF que contém métodos de proxy de cliente que acessam as operações de serviço Web.

Semelhante aos Metadados do Modelo de Serviço – ferramenta svcutil para projetos do .NET Framework, o dotnet-svcutil é uma ferramenta de linha de comando para gerar uma referência de serviço Web compatível com projetos .NET Core e .NET Standard.

A ferramenta dotnet-svcutil é uma opção alternativa ao provedor de serviços conectados do Visual Studio WCF Web Service Reference que foi primeiramente fornecido com o Visual Studio 2017 versão 15.5. A ferramenta dotnet-svcutil como uma ferramenta .NET está disponível entre plataformas no Linux, macOS e Windows.

Importante

Você só deve referenciar serviços de uma fonte confiável. Adicionar referências de uma fonte não confiável pode comprometer a segurança.

Pré-requisitos

Como começar

O exemplo a seguir explica as etapas necessárias para adicionar uma referência de serviço Web a um projeto Web do .NET Core e invocar o serviço. Você criará um aplicativo Web do .NET Core chamado HelloSvcutil e adicionará uma referência a um serviço Web que implementa o seguinte contrato:

[ServiceContract]
public interface ISayHello
{
    [OperationContract]
    string Hello(string name);
}

Para este exemplo, vamos supor que o serviço Web será hospedado no seguinte endereço: http://contoso.com/SayHello.svc

Em uma janela de comando do Windows, macOS ou Linux, execute as seguintes etapas:

  1. Crie um diretório chamado HelloSvcutil para seu projeto e torne-o seu diretório atual, como no exemplo a seguir:

    mkdir HelloSvcutil
    cd HelloSvcutil
    
  2. Crie um novo projeto Web C# nesse diretório usando o comando da dotnet new seguinte maneira:

    dotnet new web
    
  3. Instale o dotnet-svcutil pacote NuGet como uma ferramenta da CLI:

    dotnet tool install --global dotnet-svcutil
    
  4. Execute o comando dotnet-svcutil para gerar o arquivo de referência do serviço Web da seguinte maneira:

    dotnet-svcutil http://contoso.com/SayHello.svc
    

O arquivo gerado é salvo como HelloSvcutil/ServiceReference/Reference.cs. A ferramenta dotnet-svcutil também adiciona ao projeto os pacotes WCF apropriados exigidos pelo código proxy como referências de pacote.

Usar a referência de serviço

  1. Restaure os pacotes do WCF usando o dotnet restore comando da seguinte maneira:

    dotnet restore
    
  2. Localize o nome da classe de cliente e da operação que você deseja usar. Reference.cs conterá uma classe que herda de System.ServiceModel.ClientBasemétodos que podem ser usados para chamar operações no serviço. Neste exemplo, você deseja chamar a operação Hello do serviço SayHello. ServiceReference.SayHelloClient é o nome da classe cliente e tem um método chamado HelloAsync que pode ser usado para chamar a operação.

  3. Abra o arquivo Startup.cs em seu editor e adicione uma diretiva using para o namespace de referência de serviço na parte superior:

    using ServiceReference;
    
  4. Edite o Configure método para invocar o serviço Web. Você faz isso criando uma instância da classe que herda ClientBase e chamando o método no objeto cliente:

    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. Execute o aplicativo usando o comando dotnet run da seguinte maneira:

    dotnet run
    
  6. Navegue até a URL listada no console (por exemplo, http://localhost:5000) no navegador da Web.

Você deverá ver a seguinte saída: "Hello dotnet-svcutil!"

Para obter uma descrição detalhada dos parâmetros da dotnet-svcutil ferramenta, invoque a ferramenta passando o parâmetro de ajuda da seguinte maneira:

dotnet-svcutil --help

Comentários e perguntas

Se você tiver dúvidas ou comentários, abra um problema no GitHub. Você também pode examinar quaisquer perguntas ou problemas existentes no repositório WCF no GitHub.

Notas de lançamento

  • Consulte as notas de versão para obter informações de versão atualizadas, incluindo problemas conhecidos.

Informação