Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La herramienta dotnet-svcutil de Windows Communication Foundation (WCF) es una herramienta .NET que recupera metadatos de un servicio web en una ubicación de red o desde un archivo WSDL y genera una clase WCF que contiene métodos proxy de cliente que acceden a las operaciones del servicio web.
De forma similar a la herramienta Service Model Metadata - svcutil para proyectos de .NET Framework, dotnet-svcutil es una herramienta de línea de comandos para generar una referencia de servicio web compatible con proyectos de .NET Core y .NET Standard.
La herramienta dotnet-svcutil es una opción alternativa al proveedor de servicios conectados de Visual Studio Referencia a servicios web WCF que se lanzó por primera vez con Visual Studio 2017 versión 15.5. La herramienta dotnet-svcutil como herramienta .NET está disponible multiplataforma en Linux, macOS y Windows.
Importante
Solo usted debe referirse a servicios de una fuente confiable. Agregar referencias desde un origen que no es de confianza puede poner en peligro la seguridad.
Prerrequisitos
- SDK de .NET Core 2.1 o versiones posteriores
- Editor de código favorito
Cómo empezar
En el ejemplo siguiente se describen los pasos necesarios para agregar una referencia de servicio web a un proyecto web de .NET Core e invocar el servicio. Creará una aplicación web de .NET Core denominada HelloSvcutil y agregará una referencia a un servicio web que implemente el siguiente contrato:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
En este ejemplo, supongamos que el servicio web se hospedará en la siguiente dirección: http://contoso.com/SayHello.svc
En una ventana de comandos de Windows, macOS o Linux, realice los pasos siguientes:
Cree un directorio denominado HelloSvcutil para el proyecto y conviútelo en el directorio actual, como en el ejemplo siguiente:
mkdir HelloSvcutil cd HelloSvcutil
Cree un nuevo proyecto web de C# en ese directorio con el
dotnet new
comando como se indica a continuación:dotnet new web
Instale el
dotnet-svcutil
paquete NuGet como una herramienta de la CLI:dotnet tool install --global dotnet-svcutil
Ejecute el comando dotnet-svcutil para generar el archivo de referencia del servicio web de la siguiente manera:
dotnet-svcutil http://contoso.com/SayHello.svc
El archivo generado se guarda como HelloSvcutil/ServiceReference/Reference.cs. La herramienta dotnet-svcutil también agrega al proyecto los paquetes WCF adecuados requeridos por el código proxy como referencias de paquete.
Uso de la referencia de servicio
Restaure los paquetes WCF mediante el siguiente comando
dotnet restore
.dotnet restore
Busque el nombre de la clase de cliente y la operación que desea usar.
Reference.cs
contendrá una clase que se hereda deSystem.ServiceModel.ClientBase
, con métodos que pueden usarse para llamar a las operaciones del servicio. En este ejemplo, quiere llamar a la operación Hello del servicio SayHello.ServiceReference.SayHelloClient
es el nombre de la clase de cliente y tiene un método llamadoHelloAsync
que se puede usar para llamar a la operación.Abra el archivo
Startup.cs
en su editor y agregue una directivausing
para el espacio de nombres de referencia del servicio en la parte superior.using ServiceReference;
Edite el
Configure
método para invocar el servicio web. Para hacerlo, cree una instancia de la clase que herede deClientBase
y llame al método del 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); }); }
Ejecute la aplicación con el comando
dotnet run
de la siguiente manera:dotnet run
Vaya a la dirección URL que aparece en la consola (por ejemplo,
http://localhost:5000
) en el explorador web.
Debería ver los siguientes resultados: "Hello dotnet-svcutil!"
Para obtener una descripción detallada de los parámetros de la dotnet-svcutil
herramienta, invoque la herramienta pasando el parámetro de ayuda de la siguiente manera:
dotnet-svcutil --help
Comentarios y preguntas
Si tiene alguna pregunta o comentarios, abra un problema en GitHub. También puede revisar cualquier pregunta o problema existente en el repositorio de WCF en GitHub.
Notas de lanzamiento
- Consulte las notas de la versión para obtener información de lanzamiento actualizada, incluyendo los problemas conocidos.