Руководство. Реализация контракта службы Windows Communication Foundation
В этом руководстве описывается вторая из пяти задач, необходимых для создания базового приложения Windows Communication Foundation (WCF). Общие сведения о руководствах см. в руководстве по началу работы с приложениями Windows Communication Foundation.
Следующим шагом для создания приложения WCF является добавление кода для реализации интерфейса службы WCF, созданного на предыдущем шаге. На этом шаге создается класс с именем CalculatorService
, который реализует определяемый ICalculator
пользователем интерфейс. Каждый метод в следующем коде вызывает операцию калькулятора и записывает текст в консоль для его тестирования.
В этом руководстве описано следующее:
- Добавьте код для реализации контракта службы WCF.
- Постройте решение.
Добавление кода для реализации контракта службы WCF
В Приложении GettingStartedLib откройте файл Service1.cs или Service1.vb и замените его код следующим кодом:
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.config
Измените app.config в GettingStartedLib , чтобы отразить изменения, внесенные в код.
Для проектов Visual C#:
- Измените строку 14 на
<service name="GettingStartedLib.CalculatorService">
- Измените строку 17 на
<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
- Измените строку 22 на
<endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
- Измените строку 14 на
Для проектов Visual Basic:
- Измените строку 14 на
<service name="GettingStartedLib.GettingStartedLib.CalculatorService">
- Измените строку 17 на
<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
- Измените строку 22 на
<endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">
- Измените строку 14 на
Компиляция кода
Создайте решение, чтобы убедиться, что ошибки компиляции отсутствуют. Если вы используете Visual Studio, в меню "Сборка" выберите "Создать решение" (или нажмите клавиши CTRL+SHIFT+B).
Следующие шаги
Из этого руководства вы узнали, как:
- Добавьте код для реализации контракта службы WCF.
- Постройте решение.
Перейдите к следующему руководству, чтобы узнать, как запустить службу WCF.