Программирование >>  Программирование с использованием ajax 

1 ... 228 229 230 [ 231 ] 232 233 234 ... 396


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 элементов управления

Элемент управления

Значение свойства Text

RadioButton

radioButtonCelsius

Celsius

RadioButton

radioButtonFahrenheit

Fahrenheit

Button

buttonGetWeather

Get Weather

Label

labelWeatherCondition

TextBox

textCity

TextBox

textWeatherCondition

TextBox

textTemperature

Label

labelCity

City

Label

labelWeatherCondition

Weather Condition

Label

labelTemperature

Temperature

GroupBox

groupBoxl

5. Добавьте ссылку на Web-службу, подобно тому, как это было сделано в предшествующих проектах клиентских приложений. Присвойте ссылке имя WeatherService.

6. Импортируйте пространство имен WeatherClient .WeatherService.

7. Используя диалоговое окно Properties (Свойства) кнопки, добавьте к кнопке buttonGetWeather обработчик события Click по имени buttonGetWeather Click.



1 ... 228 229 230 [ 231 ] 232 233 234 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика