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
Créez une classe à l’aide de Visual Basic, C# ou tout autre langage CLR (Common Language Runtime).
Appliquez la classe ServiceContractAttribute à la classe.
Créez des méthodes dans la classe.
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.