자습서: 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">
로 변경
- 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 서비스를 실행하는 방법을 알아봅니다.