Compartir a través de


Cómo: Crear un contrato de Windows Communication Foundation con una clase

La manera preferida de crear un contrato Windows Communication Foundation (WCF) es utilizar una interfaz. Para obtener más información, vea Definición de un contrato de servicio de Windows Communication Foundation. Una alternativa, descrita aquí, es crear una clase y después aplicar directamente la clase ServiceContractAttribute a la clase directamente y la clase OperationContractAttribute a cada uno de los métodos de la clase que forman parte del contrato.

Para obtener más información sobre los contratos de servicio, vea Diseño de contratos de servicios.

Creación de un contrato de Windows Communication Foundation con una clase

  1. Cree una nueva clase mediante Visual Basic, C# o cualquier otro lenguaje de Common Language Runtime.

  2. Aplique la clase ServiceContractAttribute a la clase.

  3. Cree los métodos en la clase.

  4. Aplique la clase OperationContractAttribute a cada método que debe exponerse como parte del contrato público de WCF.

Ejemplo

El ejemplo de código siguiente muestra una clase que define un contrato de servicio.

 <ServiceContract()> _
Public Class CalculatorService
     <OperationContract()> _
     Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
         Return n1 + n2
     End Function

     <OperationContract()> _
     Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
         Return n1 - n2
     End Function

     <OperationContract()> _
     Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
         Return n1 * n2
     End Function

     <OperationContract()> _
     Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
         Return n1 / n2
     End Function
 End Class
[ServiceContract]
public class CalculatorService
{
  [OperationContract]
  public double Add(double n1, double n2)
  {
     return n1 + n2;
  }

  [OperationContract]
  public double Subtract(double n1, double n2)
  {
     return n1 - n2;
  }

  [OperationContract]
  public double Multiply(double n1, double n2)
  {
     return n1 * n2;
  }

  [OperationContract]
  public double Divide(double n1, double n2)
  {
     return n1 / n2;
  }
} 

Los métodos que tienen la clase OperationContractAttribute aplicados utilizan de forma predeterminada un modelo de mensaje solicitud-respuesta. Para obtener más información sobre este modelo de mensaje, vea Creación de un contrato de solicitud‑respuesta. Puede crear y utilizar también otros modelos de mensaje estableciendo las propiedades del atributo. Para obtener más ejemplos, vea Cómo crear un contrato unidireccional y Creación de un contrato dúplex.

Vea también

Referencia

ServiceContractAttribute
OperationContractAttribute