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 Comment : définir un contrat de service Windows Communication Foundation. Une autre alternative, présentée dans cette rubrique, consiste à créer une classe, à appliquer la classe ServiceContractAttribute directement sur celle-ci, puis la classe OperationContractAttribute sur chacune des méthodes de la classe qui font partie du contrat.

Pour plus d'informations sur le sujet suivant 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 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;
  }
} 

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 le sujet suivant ce modèle de message, consultez Comment : créer un contrat 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 Comment : créer un contrat unidirectionnel et Comment : créer un contrat duplex.

Voir aussi

Référence

ServiceContractAttribute
OperationContractAttribute