Tutorial: Implementieren eines Windows Communication Foundation-Dienstvertrags

In diesem Tutorial wird die zweite von fünf Aufgaben beschrieben, die zum Erstellen einer einfachen WCF-Anwendung (Windows Communication Foundation) erforderlich sind. Eine Übersicht über die Tutorials finden Sie unter Tutorial: Erste Schritte mit Windows Communication Foundation-Anwendungen.

Der nächste Schritt zum Erstellen einer WCF-Anwendung besteht darin, Code hinzuzufügen, um die WCF-Dienstschnittstelle zu implementieren, die Sie im vorherigen Schritt erstellt haben. In diesem Schritt erstellen Sie eine Klasse namens CalculatorService , die die benutzerdefinierte ICalculator-Schnittstelle implementiert. Jede Methode im folgenden Code ruft einen Calculator-Vorgang auf und schreibt Text in die Konsole, um ihn zu testen.

In diesem Tutorial lernen Sie Folgendes:

  • Fügen Sie Code hinzu, um den WCF-Dienstvertrag zu implementieren.
  • Erstellen Sie die Projektmappe.

Fügen Sie Code hinzu, um den WCF-Dienstvertrag zu implementieren

Öffnen Sie in GettingStartedLib die Datei Service1.cs oder Service1.vb, und ersetzen Sie ihren Code durch den folgenden Code:

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

Bearbeiten der Datei „App.config“

Bearbeiten Sie App.config in GettingStartedLib, um die Änderungen widerzuspiegeln, die Sie am Code vorgenommen haben.

  • Für Visual C#-Projekte:

    • Ändern Sie Zeile 14 in <service name="GettingStartedLib.CalculatorService">
    • Ändern Sie Zeile 17 in <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Ändern Sie Zeile 22 in <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • Für Visual Basic-Projekte:

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

Kompilieren des Codes

Erstellen Sie die Lösung, um sicherzustellen, dass keine Kompilierungsfehler vorliegen. Wenn Sie Visual Studio verwenden, klicken Sie im Menü Erstellen auf Lösung erstellen (oder drücken Sie Strg+Umschalttaste+B).

Nächste Schritte

In diesem Tutorial haben Sie Folgendes gelernt:

  • Fügen Sie Code hinzu, um den WCF-Dienstvertrag zu implementieren.
  • Erstellen Sie die Projektmappe.

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie den WCF-Client ausführen.