Вызов Web-сервиса

Оценить
(0 голоса)

Вы можете вызвать Web-сервис точно так же, как и любой другой класс .NET. Эта возмож­ность имеется благодаря классу прокси, который был для вас сгенерирован. Однако от вас требуется некоторое понимание WCF, поскольку сгенерированный прокси основан на этой технологии. Описание: image523

Мы опишем WCF в следующем разделе. Пока же мы сосредоточимся на создании клиента SOAP для CustomerProfileService. Для этого сделайте ссылку на пространство имен CustomerProfileService, а затем создайте новый экземпляр класса

CustomerProfileSoapClient:

CustomerProfileService.CustomerProfileSoapClient cp = new CustomerProfileService.CustomerProfileSoapClient ();

Этот класс даст вам доступ к Web-методам GetCustomerProfile, DeleteCustomer и Sa- veCustomer (через прокси). Для подключения этих методов к приложению CustomerManager мы создадим форму, которая покажет список всех клиентов и предоставит кнопки Edit, New и Delete. Это показано на рис. 19.14.

Давайте же посмотрим, что происходит при нажатии пользователем кнопки Edit. При этом будет запущена Windows-форма AddEditCustomer.cs, и в ее конструктор будет передан вы­бранный пользователем customerld. Этот метод создает экземпляр класса прокси

CustomerProf ileSoapClient, а затем вызывает GetCustomerProfile. В листинге 19.7 показан конструктор этой формы.

public AddEditCustomer (string customerld') {

InitializeComponent();

_editMode = EditMode.Update;

labelTitle.Text = "Edit Existing Customer";

i

_customerId = customerld;

// Получить запись клиента

CustomerProfileService.CustomerProfileSoapClient cp = new CustomerProfileService.CustomerProfileSoapClient();

CustomerProfileService.Customer с = cp.GetCustomerProfile(_customerId);

// Настроить метки текстовых полей textBoxName.Text = с. Name; textBoxEmail.Text = c.Email; textBoxPhone.Text = с.Phone; textBoxPostalCode.Text = с.PostalCode; textBoxState.Text = c.State; textBoxCity.Text = c.City; textBoxAddressl.Text = c.AddressLinel; textBoxAddress2.Text = c.AddressLine2; checkBoxContactEmail.Checked = c.ContactEmail; checkBoxContactPhone.Checked = с.ContactPhone;

Вызовы DeleteCustomer и SaveCustomer очень похожи (вы можете изучить их, если ска­чаете коды для этой книги). Делается вызов прокси CustomerProfileSoapClient, после чего вы работаете с прокси для того, чтобы вызвать соответствующий Web-метод. На рис. 19.15 приведен конечный результат. Здесь показано диалоговое окно Customer после нажатия пользователем кнопки Edit. Если пользователь нажмет здесь кнопку Save, то будет вызван Web-метод SaveCustomer и список клиентов будет обновлен.

Примечание

Для отладки вашего Web-сервиса ASP.NET из клиентского приложения вам нужно ли­бо запустить сервис в том же самом решении, либо прикрепиться к рабочему процес­су ASP.NET, отвечающему за работу сервиса. Подробности см. в главе 10.

Управление исключительными состояниями Web-сервисов ASP.NET

В .NET легко забыть о том, что вы вызываете Web-сервис. Когда вы работаете с классами прокси, то часто привыкаете работать с Web-сервисом так, как будто он не отличается от других методов. Однако это может быть опасно. Web-методы отличаются. Одним из суще­ственных отличий является способ запуска исключительных состояний из Web-сервиса. В следующих разделах объясняется, как нужно запускать исключения. Описание: image524

Создание исключения Web-сервиса
Приложения сервисов WCF
Шаблон проекта WCF Project
Создание сервиса WCF
Выполнение и тестирование вашего сервиса WCF

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.