서비스는 하나 이상의 엔드포인트에서 클라이언트가 사용할 수 있는 기능을 노출하는 클래스입니다. 서비스를 만들려면 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
"입니다.
동시성 및 인스턴스화와 같은 서비스 및 작업 구현 수준에서 몇 가지 사항을 설정할 수 있습니다. 자세한 내용은 서비스 디자인 및 구현을 참조하세요.
서비스 계약을 구현한 후에는 서비스에 대한 엔드포인트를 하나 이상 만들어야 합니다. 자세한 내용은 엔드포인트 만들기 개요를 참조하세요. 서비스를 실행하는 방법에 대한 자세한 내용은 호스팅 서비스를 참조하세요.