|
Программирование >> Программирование с использованием ajax
4. После того как ссылка службы добавлена, снова генерируется класс прокси-клиента. Добавьте к кнопке обработчик щелчка и напишите для него следующие строки кода: private void Buttonl Click(object sender. System.EventArgs e) WebServicesSample. ServicelSoapClient client = new WebServicesSanple. ServicelSoapClient () ; TextBox2. Text = client. ReverseString (TextBoxl. Text) ; Выполните компоновку проекта. С помощью команды меню Debug=> Start (Отладка=>Запуск) можно запустить браузер и ввести тестовое сообщение в первое текстовое поле. Щелчок на кнопке приведет к вызову Web-службы и во втором текстовом поле отобразится сообщение в обратном порядке, как показано на рис. 21.15. При использовании решения с множеством проекта в качестве начального проекта нужно установить проект, который требуется запустить. It http; ocjlho t500 I X I Beginnmg Visual C# 2008 8002 #C lausiV gnmmgeB LocallRLraMtlPnjlKMIIcxta: \l€0% Puc. 21.15. Сайт ASPNETClient в действии Описание полученных результатов Работа прокси-класса с Windows-приложением ничем не отличается от работы с созданным ранее Web-приложением. Добавление ссылки службы создает прокси-класс, построенный на основе документа WSDL. Прокси-класс выполняет SOAP-запрос службы. Передача данных При использовании разработанной ранее простой Web-службы ей передается только простая строка. Теперь нам предстоит добавить метод для передачи информации о погоде, запрошенной из Web-службы. Это требует пересылки Web-службе и из нее более сложных данных. пратшескоезшштм!. Передача данных с помощью Web-службы 1. с помощью Visual Studio откройте ранее созданный проект Web-службы WebServicesSample. Для этой Web-службы определите типы, показанные в следующем коде. Классы GetWeatherRequest и GetWeatherResponse определяют документы, которые должны отправляться Web-службе и из нее. Внутри этих классов применяются перечисления TemperatureType и TemperatureCondition. Web-службы ASP.NET используют сериализацию XML для преобразования объектов в XML-представление. Для изменения внешнего вида сгенерированного XML-формата можно использовать атрибуты из пространства имен System. Xml .Serialization. Подробнее сериализация описана в главе 25. public enum TemperatureType { Fahrenheit, Celsius public enum TemparatureCondition { Rainy, Sunny, Cloudy, Thunderstorm public class GetWeatherRequest { public string City; public TemperatureType TemperatureType; public class GetWeatherResponse public TemparatureCondition Condition; public int Temperature; 2. Добавьте метод GetWeather () Web-службы: [WebMethod] public GetWeatherResponse GetWeather(GetWeatherRequest req) { GetWeatherResponse resp = new GetWeatherResponse(); Random r = new Random () ; int Celsius = r.Next(-20, 50); if (req.TemperatureType == TemperatureType.Celsius) resp.Temperature = Celsius; else resp.Temperature = (212-32)7100 * celsius + 32; if (req.City == Redmond ) resp.Condition = TemparatureCondition.Rainy; else resp.Condition = (TemparatureCondition)r.Next(0, 3); return resp; Этот метод принимает данные, определенные аргументом GetWeatherRequest, и возвращает данные, определенные аргументом GetWeatherResponse. Внутри реализации осуществляется возврат произвольных погодных условий - за исключением штаб-квартиры Microsoft в Рэдмонде, где дождь льет всю неделю. Для генерирования произвольных погодных условий используется класс Random из пространства имен System. 3. После построения Web-службы создайте новый проект на основе шаблона Windows Forms и назовите приложение WeatherClient. 4. Измените главное диалоговое окно, как показано на рис. 21.16. Оно содержит два переключателя, которые позволяют выбирать температурную шкалу (по Цельсию или по Фаренгейту), и текстовое поле для ввода названия города. Щелчок на кнопке Get Weather (Получить информацию о погоде) вызывает Web-службу, а результат отображается в текстовых полях Weather Condition (Погодные условия) и Temperature (Температура). О Fahrerhe* I о < Weather СопЛюп Temperature Рис. 21.16. Главное диалоговое окно приложения WeatherCllent Типы, имена и значения свойства Text элементов управления перечислены в табл. 21.5. Таблица 21.5. Значения свойства Text элементов управления
5. Добавьте ссылку на Web-службу, подобно тому, как это было сделано в предшествующих проектах клиентских приложений. Присвойте ссылке имя WeatherService. 6. Импортируйте пространство имен WeatherClient .WeatherService. 7. Используя диалоговое окно Properties (Свойства) кнопки, добавьте к кнопке buttonGetWeather обработчик события Click по имени buttonGetWeather Click.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |