관리 코드의 웹 서비스 액세스를 위한 코드 모델
업데이트: 2007년 11월
웹 서비스 클라이언트는 웹 서비스를 참조하고 사용하는 구성 요소, 서비스 또는 응용 프로그램입니다. 웹 서비스 클라이언트가 데스크톱 응용 프로그램 같은 클라이언트 기반 응용 프로그램일 필요는 없습니다. 대부분의 경우 웹 서비스 클라이언트는 다른 웹 응용 프로그램이나 다른 웹 서비스일 수 있습니다.
관리 코드를 사용하는 웹 서비스에 액세스하면 프록시 클래스와 .NET Framework에서 모든 인프라 코딩을 처리합니다. 웹 서비스 액세스를 위해서는 다음과 같은 기본 단계를 따릅니다.
액세스할 웹 서비스를 찾습니다.
웹 참조를 프로젝트에 추가하여 웹 서비스의 프록시 클래스를 만듭니다.
프록시 클래스의 네임스페이스를 클라이언트 코드에 삽입하여 프록시 클래스를 참조합니다.
클라이언트 코드로 웹 서비스 프록시 클래스의 인스턴스를 만듭니다.
프록시의 메서드를 사용하여 웹 서비스에 액세스합니다.
자세한 내용은 방법: 관리 코드의 웹 서비스 액세스 또는 방법: 관리 코드의 웹 서비스 비동기 액세스를 참조하십시오.
웹 서비스 찾기 및 웹 참조 추가
코딩 모델을 단순화기 위해 관리 코드로 작성된 응용 프로그램에서는 웹 참조를 사용하여 각 웹 서비스를 로컬로 표시합니다. 프로젝트에 웹 참조를 추가하려면 웹 참조 추가 대화 상자를 사용합니다. 이 대화 상자에서 웹 서비스에 대한 웹 주소를 찾아볼 수 있습니다. 자세한 내용은 웹 서비스 찾기 및 웹 참조를 참조하십시오.
프록시 클래스 참조
생성된 프록시 클래스에는 그와 연결된 고유한 네임스페이스가 있으므로 프록시 클래스의 인스턴스를 만들기 전에 클라이언트 응용 프로그램에 이 네임스페이스를 추가해야 합니다. 자세한 내용은 using 지시문(C#) 또는 참조 및 Imports 문(Visual Basic .NET)을 참조하십시오.
프록시 클래스의 인스턴스 만들기
프록시 클래스의 메서드를 호출하려면 먼저 이 클래스의 인스턴스를 만들어야 합니다. 방법은 다른 클래스의 인스턴스를 만들 때와 동일합니다. 자세한 내용은 new(C#) 또는 개체 변수 선언(Visual Basic .NET)을 참조하십시오.
프록시를 사용하여 웹 서비스 액세스
웹 서비스 메서드에 액세스하기 위해 클라이언트 응용 프로그램은 프록시 개체의 해당 동기 메서드 또는 비동기 메서드를 호출합니다. 그러면 원하는 웹 서비스 메서드를 호출하기 위해 네트워크를 통해 원격 호출하는 데 필요한 작업을 이 메서드에서 수행합니다. SOAP는 지원되는 세 가지 프로토콜(HTTP-GET, HTTP-POST 및 HTTP-SOAP)을 통해 풍부한 데이터 형식 집합을 지원하므로 프록시 클래스는 기본적으로 SOAP를 사용하여 웹 서비스 메서드에 액세스합니다. 자세한 내용은 XML Web services 통신 형식을 참조하십시오.
요약
Visual Studio에서 웹 서비스의 서비스 설명으로부터 직접 생성된 프록시 클래스를 사용하면 관리 코드를 사용하는 웹 서비스를 비교적 간단하게 액세스할 수 있습니다. 프록시 클래스는 메서드 호출을 요청 메시지로 변환하고 응답 메시지를 메서드 반환 값으로 다시 변환합니다.
아래 그림에서는 웹 서비스를 호출하는 응용 프로그램과 웹 서비스 사이의 관계를 보여 줍니다. 이 경우 응용 프로그램은 가격 정보를 얻기 위해 다시 다른 웹 서비스를 호출합니다. 이 예제에서 현재 주가 검색 웹 서비스는 웹 서비스 공급자인 동시에 웹 서비스 소비자입니다.
웹 서비스 클라이언트 및 웹 서비스