На главную страницу
Форум txt.version   




Статья :: Web-служба Customer (Клиент)

Web-служба Customer (Клиент)

Чтобы создать Web-службу Customer (Клиент), мы создадим с помощью шаблона Managed C++ Web Service (Web-служба на управляемом C++) проект Web-службы и назовем его CustomerWebService. Этот проект будет использован компонентом Customer (Клиент) для реализации деталей Web-службы. Ниже приведено содержимое файла CustomerWebService . asmx, который входит в состав проекта.

<%@ WebService class = "CustomerWebService.CustomerWebService" %>

А вот и код, реализующий класс CustomerWebService:

12.gif

Рис. 11.12. AcmeWeb2 получает доступ к Web-службе

public _gc class CustomerWebService :
public WebService
// класс сборщика мусора CustomerWebService: WebService
{
private: // частный
Customers * customers; // Клиенты public:
CustomerWebService ()
{
customers = new Customers("HotelBroker");
// клиенты = новые Клиенты ("HotelBroker");
}
[WebMethod]
int RegisterCustomer(
String *firstName, // Строка
String *lastName, // Строка
String *emailAddress) // Строка
{
int customerId;
customerld = customers->RegisterCustomer( // клиенты
firstName, lastName, emailAddress) ;
return customerld;
}
[WebMethod]
void UnregisterCustomer(int customerId)
{
customers->UnregisterCustomer(customerld); // клиенты }
[WebMethod]
[Xmllnclude(_typeof(CustomerListltem))]
ArrayList *GetCustomer(int customerld)
{
ArrayList *ar;
ar = customers->GetCustomer(customerld) ; // клиенты
return ar;
}
[WebMethod]
void ChangeEmailAddress(
int customerld, String *emailAddress)
{
customers->ChangeEmailAddress( // клиенты
customerld, emailAddress);
}
};

В коде содержится единственный незнакомый нам атрибут Xmllnclude. Он указывает, что для преобразования определенного пользователем типа данных, в нашем случае CustomerListltem, XmlSerializer обычно может создать протокол SOAP. Этот атрибут находится в пространстве имен System: :Xml: : Serialization (Система::Xml:: Преобразование в последовательную форму). Тем не менее, если вы посмотрите на класс-заместитель данной Web-службы, который расположен в каталоге WebService-Proxies, вы увидите, что заместитель GetCustomer (customerproxy.cs) возвращает только массив объектов.

public object[] GetCustomer(int customerld)
// общедоступный объект[] GetCustomer(int customerld)

Данный атрибут указывает, что параллельно-последовательный преобразователь должен сохранить тип данных, определенный пользователем. Однако по протоколу SOAP могут передаваться лишь универсальные типы объектов. Поэтому код программы AcmeLib (содержится в файле Acme. cs) должен обрабатывать возвращаемый тип как объект, а затем извлечь из него тип, определенный пользователем.

object[] al = customers.GetCustomer(hotelCustomerld);
foreach(CustomerListltem cust in al)
{
currentUser.HotelCustomerld = hotelCustomerld;
currentUser.FirstName = cust.FirstName;
currentUser.LastName = cust.LastName;
currentUser.EmailAddress = cust.EmailAddress;
}

Все другие объекты компонентов Customer (Клиент) и Hotel (Гостиница) рассматриваемой Web-службы, которые содержатся в списке ArrayList, трактуются как массивы объектов, из которых нужно извлечь требуемый тип. Те массивы, которые используют такие типы данных, как строки и целые числа, обрабатывать с помощью XmlSerial-izer нет необходимости.


Web-служба Customer (Клиент)

страницы в данном разделе 
 Глава 11. Web-службы  Web-службы
 Протоколы  Язык XML
 Пространства имен XML (XML Namespeces)  Схема XML (XML schema)
 Протокол SOAP  Язык описания Web-служб WSDL
 Архитектура Web-службы  Пример Web-службы Add (Сложение)
 Просмотр Web-службы Add (Сложение) при помощи броузера  Отладка Web-службы Add (Сложение)
 Клиент для Web-службы Add (Сложение)  Язык описания Web-служб (Web Services Description Language — WSDL)
 Классы-заместители  Клиент web-службы, использующий необработанные данные SOAP и протокол передачи гипертекстовых файлов HTTP
 Особенности форматирования данных согласно спецификации SOAP  Класс WebService
 Использование шаблона Managed C++ web Service  Код, генерируемый шаблоном Managed C++ Web Service
 Арифметическая Служба Сети, или Web-служба Arithmetic  Использование внутренних объектов
 Web-служба Hotel Broker  Web-служба Customer (Клиент)
 Web-служба Hotel Broker (Брокер гостиницы)  Соображения по поводу проектирования
 Резюме   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста