Dela via


Självstudie: Implementera ett Windows Communication Foundation-tjänstkontrakt

I den här självstudien beskrivs den andra av fem uppgifter som krävs för att skapa ett grundläggande WCF-program (Windows Communication Foundation). En översikt över självstudierna finns i Självstudie: Kom igång med Windows Communication Foundation-program.

Nästa steg för att skapa ett WCF-program är att lägga till kod för att implementera det WCF-tjänstgränssnitt som du skapade i föregående steg. I det här steget skapar du en klass med namnet CalculatorService som implementerar det användardefinierade ICalculator gränssnittet. Varje metod i följande kod anropar en kalkylatoråtgärd och skriver text till konsolen för att testa den.

I den här självstudien lär du dig att:

  • Lägg till kod för att implementera WCF-tjänstkontraktet.
  • Skapa lösningen.

Lägga till kod för att implementera WCF-tjänstkontraktet

Öppna filen Service1.cs eller Service1.vb i GettingStartedLib och ersätt koden med följande kod:

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

Redigera App.config

Redigera App.config i GettingStartedLib för att återspegla de ändringar du har gjort i koden.

  • För Visual C#-projekt:

    • Ändra rad 14 till <service name="GettingStartedLib.CalculatorService">
    • Ändra rad 17 till <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Ändra rad 22 till <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • För Visual Basic-projekt:

    • Ändra rad 14 till <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Ändra rad 17 till <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Ändra rad 22 till <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Kompilera koden

Skapa lösningen för att kontrollera att det inte finns några kompileringsfel. Om du använder Visual Studio går du till menyn Skapa och väljer Skapa lösning (eller trycker på Ctrl+Skift+B).

Nästa steg

I den här självstudiekursen lärde du dig att:

  • Lägg till kod för att implementera WCF-tjänstkontraktet.
  • Skapa lösningen.

Gå vidare till nästa självstudie för att lära dig hur du kör WCF-tjänsten.