Udostępnij za pośrednictwem


Samouczek: implementowanie kontraktu usługi Windows Communication Foundation

W tym samouczku opisano drugie z pięciu zadań wymaganych do utworzenia podstawowej aplikacji windows Communication Foundation (WCF). Aby zapoznać się z omówieniem samouczków, zobacz Samouczek: rozpoczynanie pracy z aplikacjami Windows Communication Foundation.

Następnym krokiem tworzenia aplikacji WCF jest dodanie kodu w celu zaimplementowania interfejsu usługi WCF utworzonego w poprzednim kroku. W tym kroku utworzysz klasę o nazwie CalculatorService , która implementuje interfejs zdefiniowany przez ICalculator użytkownika. Każda metoda w poniższym kodzie wywołuje operację kalkulatora i zapisuje tekst w konsoli w celu jej przetestowania.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Dodaj kod, aby zaimplementować kontrakt usługi WCF.
  • Stwórz rozwiązanie.

Dodawanie kodu w celu zaimplementowania kontraktu usługi WCF

W pliku GettingStartedLib otwórz plik Service1.cs lub Service1.vb i zastąp jego kod następującym kodem:

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

Edytowanie pliku App.config

Edytuj plik App.config w pliku GettingStartedLib , aby odzwierciedlić zmiany wprowadzone w kodzie.

  • W przypadku projektów Visual C#:

    • Zmień wiersz 14 na <service name="GettingStartedLib.CalculatorService">
    • Zmień wiersz 17 na <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Zmień wiersz 22 na <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • W przypadku projektów Visual Basic:

    • Zmień wiersz 14 na <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Zmień wiersz 17 na <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Zmień wiersz 22 na <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Kompilowanie kodu

Skompiluj rozwiązanie, aby sprawdzić, czy nie ma żadnych błędów kompilacji. Jeśli używasz programu Visual Studio, w menu Kompilacja wybierz pozycję Kompiluj rozwiązanie (lub naciśnij klawisze Ctrl+Shift+B).

Następne kroki

W tym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Dodaj kod, aby zaimplementować kontrakt usługi WCF.
  • Stwórz rozwiązanie.

Przejdź do następnego samouczka, aby dowiedzieć się, jak uruchomić usługę WCF.