다음을 통해 공유


방법: 클래스를 사용하여 Windows Communication Foundation 계약 만들기

WCF(Windows Communication Foundation) 계약을 만드는 기본 방법은 인터페이스를 사용하는 것입니다. 자세한 내용은 방법: 서비스 계약 정의를 참조하세요. 또는 다음에 요약한 대로 클래스를 만든 후 ServiceContractAttribute 특성을 직접 해당 클래스에 적용하고 OperationContractAttribute 특성을 계약의 일부인 클래스의 각 메서드에 적용합니다.

Warning

[ServiceContract][ServiceContractAttribute] 에 대해 동일한 작업을 수행합니다. 같은 기준이 [OperationContract][OperationContractAttribute]에도 적용됩니다. 각 경우 전자가 후자보다 빠릅니다.

서비스 계약에 대한 자세한 내용은 서비스 계약 디자인을 참조하세요.

클래스를 사용하여 Windows Communication Foundation 계약 만들기

  1. Visual Basic, C# 또는 기타 공용 언어 런타임 언어를 사용하여 새 클래스를 만듭니다.

  2. 이 클래스에 ServiceContractAttribute 클래스를 적용합니다.

  3. 클래스에 메서드를 만듭니다.

  4. 퍼블릭 WCF 계약의 일부로서 노출해야 하는 각 메서드에 OperationContractAttribute 클래스를 적용합니다.

예시

다음 코드 예제에서는 서비스 계약을 정의하는 클래스를 보여 줍니다.

[ServiceContract]
public class CalculatorService
{
  [OperationContract]
  public double Add(double n1, double n2)
  {
     return n1 + n2;
  }

  [OperationContract]
  public double Subtract(double n1, double n2)
  {
     return n1 - n2;
  }

  [OperationContract]
  public double Multiply(double n1, double n2)
  {
     return n1 * n2;
  }

  [OperationContract]
  public double Divide(double n1, double n2)
  {
     return n1 / n2;
  }
}

<ServiceContract()> _
Public Class CalculatorService
    <OperationContract()> _
    Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 + n2
    End Function

    <OperationContract()> _
    Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 - n2
    End Function

    <OperationContract()> _
    Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 * n2
    End Function

    <OperationContract()> _
    Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 / n2
    End Function
End Class

OperationContractAttribute 클래스가 적용된 메서드는 기본적으로 요청-회신 메시지 패턴을 사용합니다. 이 메시지 패턴에 대한 자세한 내용은 방법: Request-Reply 계약 만들기를 참조하세요. 특성의 속성을 설정하여 다른 메시지 패턴을 만들고 사용할 수도 있습니다. 자세한 예제는 방법: One-Way 계약 만들기방법: 이중 계약 만들기를 참조하세요.

참고 항목