Tutorial: Crear y obtener acceso a los servicios WCF
Este tutorial muestra cómo se crea un sencillo servicio de Windows Communication Foundation (WCF). A continuación, se probará y se tendrá acceso a él desde una aplicación de Windows Forms.
Nota
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, consulte Personalizar la configuración de desarrollo en Visual Studio.
Crear el servicio web
Para crear un servicio WCF
En el menú Archivo, elija Nuevo y haga clic en Proyecto.
En el cuadro de diálogo Nuevo proyecto, expanda los nodos Visual Basic o Visual C#. Después, haga clic en WCF y Biblioteca de servicios WCF. Haga clic en Aceptar para abrir el proyecto.
Nota
Se creará un servicio de trabajo que puede probar y acceder a él.Los dos pasos siguientes muestran cómo puede modificar el método predeterminado para utilizar un tipo de datos diferente.En una aplicación real, también agregaría sus propias funciones al servicio.
-
En el Explorador de soluciones, haga doble clic en IService1.vb o IService1.cs y busque la línea siguiente:
<OperationContract()> Function GetData(ByVal value As Integer) As String
[OperationContract] string GetData(int value);
Cambiar el tipo del parámetro value a String:
<OperationContract()> Function GetData(ByVal value As String) As String
[OperationContract] string GetData(string value);
En el código anterior, observe los atributos <OperationContract()> o [OperationContract]. Estos atributos son obligatorios para cualquier método expuesto por el servicio.
-
En el Explorador de soluciones, haga doble clic en Service1.vb o Service1.cs y busque la siguiente línea:
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
public string GetData(int value) { return string.Format("You entered: {0}", value); }
Cambiar el tipo del parámetro de valor a String:
Public Function GetData(ByVal value As String) As String Implements IService1.GetData Return String.Format("You entered: {0}", value) End Function
public string GetData(string value) { return string.Format("You entered: {0}", value); }
Probar el servicio
Para probar un servicio WCF
Presione F5 para ejecutar el servicio. Se mostrará un formulario Cliente de prueba WCF y cargará el servicio.
En el formulario Cliente de prueba WCF, haga doble clic en el método GetData() en IService1. Se mostrará la pestaña GetData.
En el cuadro Solicitar, seleccione el campo Valor y escriba Hello.
Haga clic en el botón Invocar. Si aparece un cuadro de diálogo Advertencia de seguridad, haga clic en Aceptar. El resultado se mostrará en el cuadro Respuesta.
En el menú Archivo, haga clic en Salir para cerrar el formulario de prueba.
Acceso al servicio
Para hacer referencia a un servicio WCF
En el menú Archivo, apunte a Agregar y, a continuación, haga clic en Nuevo proyecto.
En el cuadro de diálogo Nuevo proyecto, expanda el nodo Visual Basic o Visual C#, seleccione Windows y, a continuación, seleccione Aplicación de Windows Forms. Haga clic en Aceptar para abrir el proyecto.
Haga clic con el botón derecho en WindowsApplication1 y haga clic en Agregar referencia de servicio. Aparecerá el cuadro de diálogo Agregar referencia de servicio.
En el cuadro de diálogo Agregar referencia de servicio, haga clic en Detectar.
Service1 se mostrará en el panel Servicios.
Haga clic en Aceptar para agregar la referencia del servicio.
Para compilar una aplicación cliente
En el Explorador de soluciones, haga doble clic en Form1.vb o Form1.cs para abrir el Diseñador de Windows Forms, si no está ya abierto.
Desde el Cuadro de herramientas, arrastre un control TextBox, un control Label y un control Button al formulario.
Haga doble clic en Button y agregue el código siguiente al controlador de eventos Click:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim client As New ServiceReference1.Service1Client Dim returnString As String returnString = client.GetData(TextBox1.Text) Label1.Text = returnString End Sub
private void button1_Click(System.Object sender, System.EventArgs e) { ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(); string returnString; returnString = client.GetData(textBox1.Text); label1.Text = returnString; }
En el Explorador de soluciones, haga clic con el botón derecho en WindowsApplication1 y haga clic en Establecer como proyecto de inicio.
Presione F5 para ejecutar el proyecto. Escriba algún texto y haga clic en el botón. La etiqueta mostrará "Escribió:" y el texto que escribió.