A ferramenta dotnet-svcutil do WCF (Windows Communication Foundation) é uma ferramenta do .NET que recupera metadados de um serviço Web em um local de rede ou de um arquivo WSDL e gera uma classe do WCF que contém métodos de proxy cliente que acessam as operações do serviço Web.
Semelhante à ferramenta Metadados de Modelo de Serviço - svcutil para projetos .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 do .NET, é a multiplataforma disponível no Linux, no macOS e no Windows.
Importante
Você só deve fazer referência a serviços de uma fonte confiável. A adição de referências de uma fonte não confiável pode comprometer a segurança.
O exemplo a seguir orienta você pelas etapas necessárias para adicionar uma referência de serviço Web a um projeto Web do .NET Core e chamar o serviço. Você criará um aplicativo Web do .NET Core denominado 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);
}
Neste exemplo, vamos assumir que o serviço Web será hospedado no seguinte endereço: http://contoso.com/SayHello.svc
Em uma janela de comandos do Windows, macOS ou Linux, execute as seguintes etapas:
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
Crie um novo projeto Web em C# nesse diretório usando o comando dotnet new da seguinte maneira:
Abra o arquivo de projeto HelloSvcutil.csproj em seu editor, edite o elemento Project e adicione o pacote dotnet-svcutil do NuGet como uma referência à ferramenta da CLI, usando o seguinte código:
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
Restaure os pacotes do WCF usando o comando dotnet restore da seguinte forma:
dotnet restore
Localize o nome da classe do cliente e a operação que você deseja usar. Reference.cs conterá uma classe que herda de System.ServiceModel.ClientBase, com mé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 do cliente e tem um método chamado HelloAsync que pode ser usado para chamar a operação.
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;
Edite o método Configure para invocar o serviço Web. Faça isso criando uma instância da classe que herda de ClientBase e chamando o método no objeto de 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);
});
}
Execute o aplicativo usando o comando dotnet run da seguinte forma:
dotnet run
Navegue até a URL listada no console (por exemplo, http://localhost:5000) em seu navegador da Web.
Você deverá ver a seguinte saída: "Hello dotnet-svcutil!"
Para ver uma descrição detalhada dos parâmetros da ferramenta dotnet-svcutil, chame a ferramenta passando o parâmetro de ajuda da seguinte forma:
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Os aplicativos de microsserviço são compostos por serviços pequenos e com versão independente e serviços escalonáveis focados no cliente que se comunicam entre si usando protocolos padrão e interfaces bem definidas. Cada microsserviço normalmente encapsula uma logica de negócios simples, que você pode escalar horizontalmente ou parcialmente. Teste, implante e gerencie o microsserviço de forma independente. Equipes menores desenvolvem um microsserviço com base em um cenário de cliente e escolhem as tecnologi