방법: 요청-회신 계약 만들기
요청-회신 계약에서는 회신을 반환하는 메서드를 지정합니다. 회신은 이 계약 조건 하의 요청에 따라 전송되고 상호 관련되어야 합니다. 메서드가 회신을 반환하지 않는 경우(C#에서는 void, Visual Basic에서는 Sub)에도 인프라에서 빈 메시지를 만들어 호출자에게 보냅니다. 빈 회신 메시지가 전송되지 않도록 하려면 작업에 대한 단방향 계약을 사용합니다.
요청-회신 계약을 만들려면
선택한 프로그래밍 언어로 인터페이스를 만듭니다.
인터페이스에 ServiceContractAttribute 특성을 적용합니다.
클라이언트가 호출할 수 있는 각 메서드에 OperationContractAttribute 특성을 적용합니다.
(선택 사항) 빈 회신 메시지가 전송되지 않도록 하려면 IsOneWay 속성의 값을 true로 설정합니다. 기본적으로 모든 작업은 요청-회신 계약 하에서 수행됩니다.
예제
다음 샘플에서는 Add 및 Subtract 메서드를 제공하는 계산기 서비스에 대한 계약을 정의합니다. Multiply 메서드는 OperationContractAttribute 클래스에 의해 표시되지 않으므로 계약의 일부가 아니며, 따라서 클라이언트에 액세스할 수 없습니다.
using System.ServiceModel;
[ServiceContract]
public interface ICalculator
{
[OperationContract]
// It would be equivalent to write explicitly:
// [OperationContract(IsOneWay=false)]
int Add(int a, int b);
[OperationContract]
int Subtract(int a, int b);
int Multiply(int a, int b)
}
작업 계약을 지정하는 방법에 대한 자세한 내용은 OperationContractAttribute 클래스 및 IsOneWay 속성을 참조하십시오.
ServiceContractAttribute 및 OperationContractAttribute 특성을 적용하면 서비스를 배포한 후에 WSDL(웹 서비스 기술 언어) 문서에서 서비스 계약 정의가 자동으로 생성됩니다. 서비스의 HTTP 기본 주소에 ?wsdl을 추가하면 문서가 다운로드됩니다. 예를 들면
http://microsoft/CalculatorService?wsdl
과 같습니다.