Comment : créer un contrat Windows Communication Foundation à l'aide d'une classe

La méthode préconisée pour créer un contrat Windows Communication Foundation (WCF) consiste à utiliser une interface. Pour plus d’informations, consultez Procédure : Définir un contrat de service. Une autre solution, présentée dans cette rubrique, consiste à créer une classe, à appliquer l'attribut ServiceContractAttribute directement sur celle-ci, puis l'attribut OperationContractAttribute sur chacune des méthodes de la classe qui font partie du contrat.

Avertissement

[ServiceContract] et [ServiceContractAttribute] produisent le même résultat. Il en va de même pour [OperationContract] et [OperationContractAttribute]. Dans chaque cas, le premier est un raccourci du second.

Pour plus d’informations sur les contrats de service, consultez Conception de contrats de service.

Création d'un contrat Windows Communication Foundation à l'aide d'une classe

  1. Créez une classe à l’aide de Visual Basic, C# ou tout autre langage CLR (Common Language Runtime).

  2. Appliquez la classe ServiceContractAttribute à la classe.

  3. Créez des méthodes dans la classe.

  4. Appliquez la classe OperationContractAttribute à chaque méthode qui doit être exposée dans le cadre du contrat public WCF.

Exemple

L'exemple de code suivant présente une classe qui définit un contrat de service.

[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;
  }
}

<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

Les méthodes auxquelles la classe OperationContractAttribute est appliquée utilisent un modèle de message demande-réponse par défaut. Pour plus d’informations sur ce modèle de message, consultez Procédure : Créer un contrat de type demande-réponse. Vous pouvez également créer et utiliser d'autres modèles de message en définissant les propriétés de l'attribut. Pour obtenir d’autres exemples, consultez Procédure : Créer un contrat unidirectionnel et Procédure : Créer un contrat duplex.

Voir aussi