다음을 통해 공유


서비스 계약 구현

서비스는 하나 이상의 엔드포인트에서 클라이언트가 사용할 수 있는 기능을 노출하는 클래스입니다. 서비스를 만들려면 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"입니다.

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

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

참고하십시오