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

Ce tutoriel décrit la deuxième des cinq premières tâches requises pour créer une application Windows Communication Foundation (WCF) de base. Pour obtenir une vue d’ensemble des tutoriels, consultez Tutoriel : Prise en main des applications Windows Communication Foundation.

L’étape suivante de la création d’une application WCF consiste à ajouter du code pour implémenter l’interface de service WCF que vous avez créée à l’étape précédente. Dans cette étape, vous créez une classe nommée CalculatorService qui implémente l'interface ICalculator définie par l'utilisateur. Chaque méthode du code suivant appelle une opération de calculatrice et écrit du texte dans la console pour le tester.

Dans ce tutoriel, vous allez apprendre à :

  • Ajouter du code pour implémenter le contrat de service WCF.
  • Générez la solution.

Ajouter du code pour implémenter le contrat de service WCF

Dans GettingStartedLib, ouvrez le fichier Service1.cs ou Service1.vb et remplacez son code par le code suivant :

using System;
using System.ServiceModel;

namespace GettingStartedLib
{
    public class CalculatorService : ICalculator
    {
        public double Add(double n1, double n2)
        {
            double result = n1 + n2;
            Console.WriteLine("Received Add({0},{1})", n1, n2);
            // Code added to write output to the console window.
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Subtract(double n1, double n2)
        {
            double result = n1 - n2;
            Console.WriteLine("Received Subtract({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Multiply(double n1, double n2)
        {
            double result = n1 * n2;
            Console.WriteLine("Received Multiply({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Divide(double n1, double n2)
        {
            double result = n1 / n2;
            Console.WriteLine("Received Divide({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }
    }
}
Imports System.ServiceModel

Namespace GettingStartedLib

    Public Class CalculatorService
        Implements ICalculator

        Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Add
            Dim result As Double = n1 + n2
            ' Code added to write output to the console window.
            Console.WriteLine("Received Add({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result
        End Function

        Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Dim result As Double = n1 - n2
            Console.WriteLine("Received Subtract({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Dim result As Double = n1 * n2
            Console.WriteLine("Received Multiply({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Divide
            Dim result As Double = n1 / n2
            Console.WriteLine("Received Divide({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function
    End Class
End Namespace

Modification du fichier App.config

Modifiez App.config dans GettingStartedLib pour refléter les modifications que vous avez apportées au code.

  • Pour des projets Visual C# :

    • Remplacez la ligne 14 par <service name="GettingStartedLib.CalculatorService">
    • Remplacez la ligne 17 par <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Remplacez la ligne 22 par <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • Pour les projets Visual Basic :

    • Remplacez la ligne 14 par <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Remplacez la ligne 17 par <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Remplacez la ligne 22 par <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Compiler le code

Générez la solution pour vérifier qu’il n’y a aucune erreur de compilation. Si vous utilisez Visual Studio, dans le menu Générer, cliquez sur Générer la solution (ou appuyez sur Ctrl+Maj+B).

Étapes suivantes

Dans ce didacticiel, vous avez appris à :

  • Ajouter du code pour implémenter le contrat de service WCF.
  • Générez la solution.

Passez au tutoriel suivant pour découvrir comment mettre à jour les données associées.