자습서: Windows Communication Foundation 서비스 계약 정의

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

WCF 서비스를 만들 때 첫 번째 작업은 서비스 계약을 정의하는 것입니다. 서비스 계약은 서비스에서 지원하는 작업을 지정합니다. 작업은 웹 서비스 메서드로 간주될 수 있습니다. C# 또는 Visual Basic 인터페이스를 정의하여 서비스 계약을 만듭니다. 인터페이스에는 다음과 같은 특성이 있습니다.

  • 인터페이스의 각 메서드는 특정 서비스 작업에 해당합니다.
  • 각 인터페이스에 대해 ServiceContractAttribute 특성을 적용해야 합니다.
  • 각 작업/메서드에 대해 OperationContractAttribute 특성을 적용해야 합니다.

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

  • WCF 서비스 라이브러리 프로젝트를 만듭니다.
  • 서비스 계약 인터페이스를 정의합니다.

WCF 서비스 라이브러리 프로젝트 만들기 및 서비스 계약 인터페이스 정의

  1. 관리자 권한으로 Visual Studio를 엽니다. 이렇게 하려면 시작 메뉴에서 Visual Studio 프로그램을 선택한 다음 바로 가기 메뉴에서 자세히>관리자 권한으로 실행을 선택합니다.

  2. WCF 서비스 라이브러리 프로젝트를 만듭니다.

    1. 파일 메뉴에서 새로 만들기>프로젝트를 선택합니다.

    2. 새 프로젝트 대화 상자의 왼쪽에서 Visual C# 또는 Visual Basic을 확장한 다음 WCF 범주를 선택합니다. . Visual Studio는 창의 중앙 섹션에 프로젝트 템플릿 목록을 표시합니다. WCF 서비스 라이브러리를 선택합니다.

      참고 항목

      WCF 프로젝트 템플릿 범주가 표시되지 않으면 Visual Studio의 Windows Communication Foundation 구성 요소를 설치해야 할 수 있습니다. 새 프로젝트 대화 상자에서 왼쪽에 있는 Visual Studio 설치 관리자 열기 링크를 선택합니다. 개별 구성 요소 탭을 선택한 다음 개발 작업 범주에서 Windows Communication Foundation을 찾아 선택합니다. 수정을 선택하여 구성 요소 설치를 시작합니다.

    3. 창 하단 섹션에서 이름GettingStartedLib를 입력하고 솔루션 이름GettingStarted를 입력합니다.

    4. 확인을 선택합니다.

      Visual Studio는 IService1.cs(또는 Visual Basic 프로젝트의 경우 IService1.vb), Service1.cs(또는 Visual Basic 프로젝트의 경우 Service1.vb) 및 App.config의 세 가지 파일이 있는 프로젝트를 만듭니다. Visual Studio는 이러한 파일을 다음과 같이 정의합니다.

      • IService1 파일에는 서비스 계약의 기본 정의가 포함되어 있습니다.
      • Service1 파일에는 서비스 계약의 기본 구현이 포함되어 있습니다.
      • App.config 파일에는 Visual Studio WCF 서비스 호스트 도구를 사용하여 기본 서비스를 로드하는 데 필요한 구성 정보가 포함되어 있습니다. WCF 서비스 호스트 도구에 대한 자세한 내용은 WCF 서비스 호스트(WcfSvcHost.exe)를 참조하세요.

      참고 항목

      Visual Basic 개발자 환경 설정으로 Visual Studio를 설치한 경우 솔루션이 숨겨져 있을 수 있습니다. 이 경우 도구 메뉴에서 옵션을 선택한 다음 옵션 창의 프로젝트 및 솔루션>일반을 선택합니다. 항상 솔루션 표시를 선택합니다. 또한 새 프로젝트 만들 때 저장이 선택되어 있는지 확인합니다.

  3. 솔루션 탐색기에서 IService1.cs 또는 IService1.vb 파일을 열고 해당 코드를 다음 코드로 바꿉니다.

    using System;
    using System.ServiceModel;
    
    namespace GettingStartedLib
    {
            [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
            public interface ICalculator
            {
                [OperationContract]
                double Add(double n1, double n2);
                [OperationContract]
                double Subtract(double n1, double n2);
                [OperationContract]
                double Multiply(double n1, double n2);
                [OperationContract]
                double Divide(double n1, double n2);
            }
    }
    
    Imports System.ServiceModel
    
    Namespace GettingStartedLib
    
        <ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
        Public Interface ICalculator
    
            <OperationContract()> _
            Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
        End Interface
    End Namespace
    

    이 계약은 온라인 계약을 정의합니다. ICalculator 인터페이스는 ServiceContractAttribute 특성(ServiceContract로 단순화됨)으로 표시됩니다. 이 특성은 계약 이름을 명확하게 하기 위해 네임스페이스를 정의합니다. 코드는 OperationContractAttribute 특성(OperationContract로 단순화됨)으로 각 계산기 작업을 표시합니다.

다음 단계

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

  • WCF 서비스 라이브러리 프로젝트를 만듭니다.
  • 서비스 계약 인터페이스를 정의합니다.

WCF 서비스 계약을 구현하는 방법을 알아보려면 다음 자습서로 진행합니다.