Share via


Comment : définir un contrat de service Windows Communication Foundation

C'est la première des six tâches requises pour créer un service Windows Communication Foundation (WCF) de base et un client pouvant appeler le service. Pour disposer d'une vue d'ensemble des six tâches, consultez la rubrique Didacticiel de mise en route.

Lors de la création d'un service WCF de base, la première tâche consiste à définir un contrat. Le contrat spécifie les opérations prises en charge par le service. Une opération peut être considérée comme une méthode de service Web. Les contrats sont créés en définissant une interface C++, C# ou VB. Chaque méthode dans l'interface correspond à une opération de service spécifique. Chaque interface doit avoir le ServiceContractAttribute qui s'applique à elle et chaque opération doit avoir le OperationContractAttribute qui s'applique à elle. Si une méthode dans une interface qui a le ServiceContractAttribute n'a pas le OperationContractAttribute, cette méthode n'est pas exposée.

Le code utilisé pour cette tâche est fourni dans l'exemple qui suit la procédure.

Pour créer un contrat Windows Communication Foundation avec une interface

  1. Ouvrez Visual Studio 2008 en tant qu'administrateur en cliquant avec le bouton droit sur le programme dans le menu Démarrer et en sélectionnant Exécuter en tant qu'administrateur.

  2. Créez un projet d'application console. Dans la boîte de dialogue Nouveau projet, sélectionnez Visual Basic ou Visual C#, choisissez le modèle Application console et nommez-le Service. Utilisez l'emplacement par défaut.

  3. Remplacez l'espace de noms Service par défaut par Microsoft.ServiceModel.Samples.

  4. Ajoutez une référence à System.ServiceModel.dll au projet :

    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier References dans le dossier du projet, puis cliquez sur Ajouter une référence.
    2. Cliquez sur l'onglet Parcourir dans la boîte de dialogue Ajouter une référence et accédez à c:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation. Sélectionnez ensuite System.ServiceModel.dll, puis cliquez sur OK.
    ms731835.note(fr-fr,VS.90).gifRemarque :
    Lorsque vous utilisez un compilateur de ligne de commande (par exemple, Csc.exe ou Vbc.exe), vous devez également indiquer le chemin d'accès aux assemblys. Par défaut, sur un ordinateur qui exécute Windows Vista, par exemple, le chemin d'accès est : Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation.

  5. Ajoutez une instruction using (Imports dans Visual Basic) pour l'espace de noms System.ServiceModel.

  6. Définissez une nouvelle interface appelée ICalculator et appliquez-lui l'attribut ServiceContractAttribute avec une valeur Namespace de http://Microsoft.ServiceModel.Samples. La spécification explicite de l'espace de noms est recommandée car elle évite l'ajout de la valeur de l'espace de noms par défaut au nom de contrat.

    ms731835.note(fr-fr,VS.90).gifRemarque :
    Lorsque vous utilisez des attributs pour annoter une interface ou une classe, vous pouvez supprimer la partie "Attribute" du nom d'attribut. ServiceContractAttribute devient donc [ServiceContract]

  7. Déclarez une méthode pour chaque opération que le contrat ICalculator expose (ajout, soustraction, multiplication et division) dans l'interface et appliquez l'attribut OperationContractAttribute à chaque méthode que vous souhaitez exposer dans le cadre du contrat WCF public.

Exemple

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

L'interface est créée. Générez le projet pour garantir qu'il n'y a pas d'erreurs de compilation, puis poursuivez avec Comment : implémenter un contrat de service Windows Communication Foundation pour implémenter l'interface. Pour obtenir des informations de dépannage, consultez Dépannage du didacticiel de mise en route.

Voir aussi

Tâches

Comment : implémenter un contrat de service Windows Communication Foundation

Référence

ServiceContractAttribute
OperationContractAttribute

Autres ressources

Getting Started Sample
Self-Host