Procedimiento para especificar un enlace de cliente en la configuración
Artículo
En este ejemplo, se crea una aplicación de consola de cliente para utilizar un servicio de calculadora y el enlace para ese cliente se especifica de manera declarativa en la configuración. El cliente obtiene acceso al CalculatorService, que implementa la interfaz ICalculator, y el servicio y el cliente utilizan la clase BasicHttpBinding.
El procedimiento descrito asume que el servicio de calculadora se está ejecutando. Para obtener información sobre cómo compilar el servicio, consulte Especificación de un enlace de servicio en la configuración. También usa la Herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) que Windows Communication Foundation (WCF) proporciona para generar de forma automática los componentes de cliente. La herramienta genera el código de cliente y la configuración para obtener acceso al servicio.
El cliente se crea en dos partes. Svcutil.exe genera la ClientCalculator que implementa la interfaz ICalculator. Esta aplicación de cliente se construye a continuación mediante la creación de una instancia de ClientCalculator.
Normalmente es el mejor procedimiento para especificar el enlace y la información de dirección de forma declarativa en configuración en lugar de hacerlo de forma imperativa en código. Normalmente, no resulta muy práctico definir los puntos de conexión en el código ya que los enlaces y las direcciones de un servicio implementado son, por lo general, diferentes de los utilizados durante el desarrollo del servicio. Más generalmente, manteniendo el enlace y la información de dirección fuera del código permite cambiarlos sin tener que recompilar o implementar la aplicación.
El cliente generado también contiene la implementación de ClientCalculator.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class CalculatorClient : System.ServiceModel.ClientBase<Microsoft.ServiceModel.Samples.ICalculator>, Microsoft.ServiceModel.Samples.ICalculator
{
public CalculatorClient()
{
}
public CalculatorClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
public CalculatorClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public CalculatorClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public CalculatorClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
public double Add(double n1, double n2)
{
return base.Channel.Add(n1, n2);
}
public double Subtract(double n1, double n2)
{
return base.Channel.Subtract(n1, n2);
}
public double Multiply(double n1, double n2)
{
return base.Channel.Multiply(n1, n2);
}
public double Divide(double n1, double n2)
{
return base.Channel.Divide(n1, n2);
}
}
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
Svcutil.exe también genera la configuración para el cliente que utiliza la clase BasicHttpBinding. Al usar Visual Studio, proporcione a este archivo el nombre App.config. Tenga en cuenta que la dirección y la información de enlace no se especifican en ningún lugar de la implementación del servicio. Además, el código tiene que escribirse para recuperar esa información del archivo de configuración.
Cree una interfaz de usuario con enlace de datos. La interfaz de usuario se actualiza automáticamente en función de los datos más recientes, mientras que los datos se actualizan en respuesta a los cambios en la interfaz de usuario.
Obtenga información sobre cómo especificar el enlace de un cliente WCF de forma imperativa en el código. En este ejemplo se muestra un cliente que accede a un servicio.
Los enlaces contienen información de configuración que utilizan los clientes o servicios WCF. Vea cómo definir enlaces y especificar un enlace para un punto de conexión de servicio.
Aprenda a configurar un punto de conexión para un servicio WCF en un archivo de configuración. Un contrato se define para un servicio y se implementa en una clase .
Obtenga información sobre cómo configurar enlaces en tiempo de implementación para una aplicación WCF mediante la edición de elementos pertenecientes al elemento system.ServiceModel.
Obtenga información sobre una dirección de punto de conexión, una parte del elemento ServiceEndpoint en WCF. Toda comunicación con un servicio WCF se produce a través de sus puntos de conexión.
Aprenda sobre los enlaces, que especifican cómo conectarse a un servicio WCF, como los elementos que los componen y cómo especificar un enlace para un punto de conexión de servicio.