Share via


AJAX Service Using Complex Types 샘플

이 샘플에서는 WCF(Windows Communication Foundation)를 사용하여 복합 형식의 인스턴스를 만들고 서비스 및 클라이언트 사이에서 이러한 인스턴스를 JSON(JavaScript Object Notation)으로 전송하는 ASP.NET AJAX(Asynchronous JavaScript and XML) 서비스를 만드는 방법을 보여 줍니다. 웹 브라우저 클라이언트에서 JavaScript 코드를 사용하여 AJAX 서비스에 액세스할 수 있습니다. 이 샘플은 Basic AJAX Service 샘플을 기반으로 하며,

참고

이 샘플을 빌드하고 실행하려면 .NET Framework 버전 3.5가 설치되어 있어야 하며 프로젝트 및 솔루션 파일을 열려면 Visual Studio 2008이 필요합니다.

WCF의 AJAX 지원은 ScriptManager 컨트롤을 통해 ASP.NET AJAX와 함께 사용하도록 최적화되었습니다. ASP.NET AJAX와 함께 WCF를 사용한 예제를 보려면 AJAX 샘플을 참조하십시오.

참고

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

다음 샘플의 서비스는 AJAX 특정 코드가 없는 WCF 서비스입니다. WebGetAttribute 특성이 적용되지 않으므로 기본 HTTP 동사("POST")가 사용됩니다. 서비스에는 MathResult라는 복합 형식을 반환하는 단일 작업인 DoMath가 있습니다. 복합 형식은 마찬가지로 AJAX 특정 코드가 없는 표준 데이터 계약 형식입니다.

[DataContract]
    public class MathResult
    {
        [DataMember]
        public double sum;
        [DataMember]
        public double difference;
        [DataMember]
        public double product;
        [DataMember]
        public double quotient;
    }

Basic AJAX Service 샘플과 비슷하게 서비스 구성에서 WebHttpBinding 표준 바인딩과 <enableWebScript> 동작을 사용하여 서비스에서 AJAX 끝점을 만들 수 있습니다.

클라이언트 웹 페이지 ComplexTypeClientPage.aspx에는 사용자가 페이지에서 계산 수행 단추를 클릭했을 때 서비스를 호출하기 위한 ASP.NET 및 JavaScript 코드가 포함되어 있습니다. AJAX Service Using HTTP POST 샘플과 비슷하게 서비스를 호출하기 위한 코드는 JSON 본문을 생성하고 HTTP POST를 사용하여 전송합니다.

서비스 호출에 성공한 후 결과 JavaScript 개체에서 개별 데이터 멤버(sum, difference, productquotient)에 액세스할 수 있습니다.

function onSuccess(mathResult){
     document.getElementById("sum").value = mathResult.sum;
     document.getElementById("difference").value = mathResult.difference;
     document.getElementById("product").value = mathResult.product;
     document.getElementById("quotient").value = mathResult.quotient;
}

샘플을 설치, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플의 일회 설치 절차를 수행했는지 확인합니다.

  2. Windows Communication Foundation 샘플 빌드에 설명된 대로 ComplexTypeAjaxService.sln 솔루션을 빌드합니다.

  3. https://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx로 이동합니다. 브라우저의 프로젝트 디렉터리에서 ComplexTypeClientPage.aspx를 열지 마십시오.

참고 항목

작업

Basic AJAX Service

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.