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.
La herramienta dotnet-svcutil es una opción alternativa a la referencia de servicio web WCF del proveedor de servicios conectados de Visual Studio. Como herramienta .NET, la herramienta dotnet-svcutil 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
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 e invocar el servicio. Creará una aplicación web de .NET 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 HelloSvcutilCree un nuevo proyecto web de C# en ese directorio con el
dotnet newcomando como se indica a continuación:dotnet new webInstale el
dotnet-svcutilpaquete NuGet como una herramienta de la CLI:dotnet tool install --global dotnet-svcutilEjecute 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 restoreBusque el nombre de la clase de cliente y la operación que desea usar.
Reference.cscontendrá 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.SayHelloClientes el nombre de la clase de cliente y tiene un método llamadoHelloAsyncque se puede usar para llamar a la operación.Abra el archivo
Startup.csen su editor y agregue una directivausingpara el espacio de nombres de referencia del servicio en la parte superior.using ServiceReference;Edite el
Configuremétodo para invocar el servicio web. Para hacerlo, cree una instancia de la clase que herede deClientBasey 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 runde la siguiente manera:dotnet runVaya 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
Actualización de la referencia del servicio
Si cambia el servicio web, puede actualizar la referencia del servicio para reflejar esos cambios. La -u opción actualiza el código generado en función de los metadatos del punto de conexión de servicio o del archivo WSDL.
Para actualizar una referencia de servicio existente:
dotnet-svcutil -u ./path/to/reference/folder
La carpeta de referencia debe contener el ConnectedService.json archivo que se creó al agregar inicialmente la referencia de servicio. La herramienta lee este archivo de configuración para determinar el punto de conexión de servicio y regenera el código proxy con los metadatos actualizados.
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.