서비스 계약 구현

서비스는 클라이언트에서 사용할 수 있는 기능을 하나 이상의 엔드포인트에 노출하는 클래스입니다. 서비스를 만들려면 WCF(Windows Communication Foundation) 계약을 구현하는 클래스를 작성합니다. 다음 두 가지 방법 중 하나를 사용합니다. 계약을 인터페이스로 따로 정의한 다음 해당 인터페이스를 구현하는 클래스를 만들 수 있습니다. 또는 클래스 자체에 ServiceContractAttribute 특성을 두고 서비스 클라이언트에서 사용할 수 있는 메서드에 OperationContractAttribute 특성을 두어 클래스와 계약을 직접 만들 수도 있습니다.

서비스 클래스 만들기

다음은 별도로 정의된 IMath 계약을 구현하는 서비스의 예입니다.

// Define the IMath contract.  
[ServiceContract]  
public interface IMath  
{  
    [OperationContract]
    double Add(double A, double B);  
  
    [OperationContract]  
    double Multiply (double A, double B);  
}  
  
// Implement the IMath contract in the MathService class.  
public class MathService : IMath  
{  
    public double Add (double A, double B) { return A + B; }  
    public double Multiply (double A, double B) { return A * B; }  
}  

또는 서비스에서 직접 계약을 노출할 수도 있습니다. 다음은 MathService 계약을 정의 및 구현하는 서비스 클래스의 예입니다.

// Define the MathService contract directly on the service class.  
[ServiceContract]  
class MathService  
{  
    [OperationContract]  
    public double Add(double A, double B) { return A + B; }  
    [OperationContract]  
    private double Multiply (double A, double B) { return A * B; }  
}  

계약 이름이 다르기 때문에 앞의 서비스에서 다른 계약을 노출한다는 것에 주의하십시오. 첫째 경우에서 노출되는 계약의 이름은 "IMath"인데 둘째 경우에서 계약의 이름은 "MathService"입니다.

서비스 및 작업 구현 수준에서 동시성 및 인스턴스 등을 설정할 수 있습니다. 자세한 내용은 서비스 디자인 및 구현을 참조하세요.

서비스 계약을 구현하고 나면 서비스에 하나 이상의 엔드포인트를 만들어야 합니다. 자세한 내용은 엔드포인트 만들기 개요를 참조하세요. 서비스를 실행하는 방법에 대한 자세한 내용은 호스팅 서비스를 참조하세요.

참고 항목