Учебник. Реализация контракта службы Windows Communication FoundationTutorial: Implement a Windows Communication Foundation service contract

В этом руководстве описывается вторая из пяти задач, необходимых для создания приложения Basic Windows Communication Foundation (WCF).This tutorial describes the second of five tasks required to create a basic Windows Communication Foundation (WCF) application. Общие сведения о учебниках см. в разделе Учебник. Приступая к работе сWindows Communication Foundation приложениями.For an overview of the tutorials, see Tutorial: Get started with Windows Communication Foundation applications.

Следующим шагом для создания приложения WCF является добавление кода для реализации интерфейса службы WCF, созданного на предыдущем шаге.The next step for creating a WCF application is to add code to implement the WCF service interface that you created in the previous step. На этом шаге вы создадите класс с именем CalculatorService , который реализует определяемый ICalculator пользователем интерфейс.In this step, you create a class named CalculatorService that implements the user-defined ICalculator interface. Каждый метод в следующем коде вызывает операцию калькулятора и выводит текст на консоль для его тестирования.Each method in the following code calls a calculator operation and writes text to the console to test it.

В этом руководстве вы узнаете, как:In this tutorial, you learn how to:

  • Добавьте код для реализации контракта службы WCF.Add code to implement the WCF service contract.
  • Постройте решение.Build the solution.

Добавление кода для реализации контракта службы WCFAdd code to implement the WCF service contract

В жеттингстартедлиботкройте файл Service1.CS или Service1. vb и замените его код следующим кодом:In GettingStartedLib, open the Service1.cs or Service1.vb file and replace its code with the following 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

Изменить App. configEdit App.config

Измените файл App. config в жеттингстартедлиб , чтобы отразить изменения, внесенные в код.Edit App.config in GettingStartedLib to reflect the changes you made to the code.

  • Для визуальных C# проектов:For Visual C# projects:

    • Измените строку 14 на<service name="GettingStartedLib.CalculatorService">Change line 14 to <service name="GettingStartedLib.CalculatorService">
    • Изменить строку 17 на<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />Change line 17 to <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Измените строку 22 на<endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">Change line 22 to <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • Для проектов Visual Basic:For Visual Basic projects:

    • Измените строку 14 на<service name="GettingStartedLib.GettingStartedLib.CalculatorService">Change line 14 to <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Изменить строку 17 на<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />Change line 17 to <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Измените строку 22 на<endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">Change line 22 to <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Компиляция кодаCompile the code

Постройте решение, чтобы убедиться в отсутствии ошибок компиляции.Build the solution to verify there aren't any compilation errors. Если вы используете Visual Studio, в меню Сборка выберите пункт построить решение (или нажмите клавиши CTRL+SHIFT+B).If you're using Visual Studio, on the Build menu select Build Solution (or press Ctrl+Shift+B).

Следующие шагиNext steps

В этом руководстве вы узнали, как:In this tutorial, you learned how to:

  • Добавьте код для реализации контракта службы WCF.Add code to implement the WCF service contract.
  • Постройте решение.Build the solution.

Перейдите к следующему руководству, чтобы узнать, как запустить службу WCF.Advance to the next tutorial to learn how to run the WCF service.