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
, product
및 quotient
)에 액세스할 수 있습니다.
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;
}
샘플을 설치, 빌드 및 실행하려면
Windows Communication Foundation 샘플의 일회 설치 절차를 수행했는지 확인합니다.
Windows Communication Foundation 샘플 빌드에 설명된 대로 ComplexTypeAjaxService.sln 솔루션을 빌드합니다.
https://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx로 이동합니다. 브라우저의 프로젝트 디렉터리에서 ComplexTypeClientPage.aspx를 열지 마십시오.
참고 항목
작업
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.