Практическое руководство. Получение доступа к веб-службам в управляемом коде
Обновлен: Ноябрь 2007
Обращение к веб-службам из управляемого кода является прямым процессом. Сначала в проект добавляется веб-ссылка на веб-службу, к которой нужно обратиться. Веб-ссылка создает класс прокси с методами, которые служат как прокси для каждого публикуемого веб-службой метода. Затем добавляется пространство имен для веб-ссылки. Наконец, создается экземпляр класса прокси, после чего можно обращаться к методам этого класса так же, как к методам любых других классов. Дополнительные сведения см. в разделе Модель кода для доступа к веб-службам в управляемом коде.
По умолчанию при добавлении веб-ссылки в класс прокси также добавляются методы для асинхронного доступа к веб-службе. Дополнительные сведения см. в разделе Практическое руководство. Асинхронный доступ к веб-службе в управляемом коде.
Получение доступа к веб-службам в управляемом коде
Создайте приложение, которое должно обращаться к веб-службе. Это может быть другая веб-служба.
Добавьте веб-ссылку на веб-службу, с которой будет взаимодействовать приложение. Подробные инструкции см. в разделе Добавление и удаление веб-ссылок.
Создайте экземпляр прокси-объекта в коде клиента в том месте, где требуется обращение к веб-службе.
Обращайтесь к методам веб-службы так же, как и к любым другим компонентам.
В приведенном ниже примере кода клиентское приложение (Application1) обращается к веб-службе, на которую указывает имеющаяся в приложении веб-ссылка (Converter), которая содержит класс прокси (Service1) с методом (ConvertTemperature) для вызова веб-службы. Две выделенные жирным шрифтом строки содержат код, необходимый для обращения к веб-службе.
Imports System Module Module1 Sub Main() Dim cService As New Converter.Service1() Dim dFahrenheit As Double Dim dCelsius As Double Console.Write("Temperature in degrees Fahrenheit: ") dFahrenheit = Convert.ToDouble(Console.ReadLine()) dCelsius = cService.ConvertTemperature(dFahrenheit) Console.Write("Temperature in degrees Celsius: ") Console.WriteLine(dCelsius.ToString()) End Sub End Module
using System; namespace Application1 { class Class1 { static void Main() { Converter.Service1 cService = new Converter.Service1(); Console.WriteLine("Temperature in degrees Fahrenheit: "); double dFahrenheit = Convert.ToDouble(Console.ReadLine()); double dCelsius = cService.ConvertTemperature(dFahrenheit); Console.Write("Temperature in degrees Celsius: "); Console.WriteLine(dCelsius.ToString()); } } }
См. также
Основные понятия
Building XML Web Service Clients