자습서: Windows Communication Foundation 서비스 계약 구현

이 자습서에서는 기본 WCF(Windows Communication Foundation) 애플리케이션을 만드는 데 필요한 다섯 가지 작업 중 두 번째 작업에 대해 설명합니다. 자습서에 대한 개요는 자습서: Windows Communication Foundation 애플리케이션 시작를 참조하세요.

WCF 애플리케이션을 만드는 다음 단계는 이전 단계에서 만든 WCF 서비스 인터페이스를 구현하는 코드를 추가하는 것입니다. 이 단계에서는 사용자 정의 ICalculator 인터페이스를 구현하는 CalculatorService라는 클래스를 만듭니다. 다음 코드의 각 메서드는 계산기 작업을 호출하고 콘솔에 텍스트를 작성하여 테스트합니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 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 편집

코드 변경 내용을 반영하도록 GettingStartedLib에서 App.config를 편집합니다.

  • Visual C# 프로젝트의 경우:

    • 14행을 <service name="GettingStartedLib.CalculatorService">로 변경
    • 17행을 <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />로 변경
    • 22행을 <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">로 변경
  • 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">로 변경

코드 컴파일

컴파일 오류가 없는지 확인하는 솔루션을 빌드합니다. Visual Studio를 사용하는 경우 빌드 메뉴에서 솔루션 빌드를 선택합니다(또는 Ctrl+Shift+B를 누릅니다).

다음 단계

이 자습서에서는 다음 작업 방법을 알아보았습니다.

  • WCF 서비스 계약을 구현하는 코드를 추가합니다.
  • 솔루션을 빌드합니다.

다음 자습서로 이동하여 WCF 서비스를 실행하는 방법을 알아봅니다.