Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
224
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

Использование Web-сервисов xml

После создания и публикации Web-сервиса XML любое уполномоченное приложение сможет получить доступ к его службам и использовать их. Приложение, использующее службы Web-сервиса, называется его клиентом. Клиентом Web-сервиса может быть компонент, служба или приложение для настольной системы. В действительности большинство клиентов, использующих функциональность Web-сервисов, сами являются Web-приложениями и Web-сервисами.

Чтобы получить доступ к Web-сервису XML из клиентского приложения необходимо:

  1. добавить к клиентскому приложению Web-ссылку на нужный Web-сервис XML (для этого его сначала требуется обнаружить);

  2. сгенерировать класс прокси для этого Web-сервиса XML;

  3. создать в клиентском приложении объект этого класса;

  4. вызывать методы Web-сервиса XML через его объект прокси.

Добавление Web-ссылки

Для использования Web-сервиса XML его прежде необходимо найти с помощью механизма обнаружения. Чтобы задействовать Web-сервис XML, созданный другим программистом, нужно знать, где находится этот сервис и подходит ли он вам. Если адрес сервиса неизвестен, можно найти его через UDDI. Чтобы облегчить обнаружение Web-сервисов XML, Visual Studio .NET поддерживает Web-ссылки на все задействованные в проекте сервисы. Web-ссылка — это локальное представление Web-сервиса ХМL в проекте.

Генерация класса прокси

Класс прокси Web-сервиса содержит инструкции для вызова его методов и вы­полняет маршалинг аргументов при их передаче между Web-сервисом XML и клиент­ским приложением. Visual Studio .NET генерирует классы прокси с использованием WSDL, сохраняя описание сгенерированного прокси в wsdl-файл. После добавления ссылки на Web-сервис XML и генерации для него класса прокси следует добавить к кли­ентскому приложению ссылку на этот класс и создать его объект.

Если найти Web-сервис XML через диалоговое окно Add Web Reference не удается, можно сгенерировать класс прокси для Web-сервиса XML вручную при помощи инструмента WSDL (WSDL.exe), который принимает в качестве параметра WSDL-контракт, схему XSD или документ .DiscoMap.

Создание объекта класса прокси

Класс прокси, сгенерированный при добавлении к проекту ссылки на Web-сервис XML, определяется в собственном пространстве имен. Перед созданием объекта прокси в клиентском приложении необходимо импортировать это пространство имен — тогда можно создавать объекты класса прокси при помощи оператора new. Объект класса прокси позволяет вызывать опубликованные методы Web-сервиса XML и получать возвращаемые ими результаты, как при использовании методов других компонентов.

Доступ к Web-сервису xml через объект прокси

Объект класса прокси преобразует вызовы методов Web-сервиса XML в сообщения запроса, а сообщения отклика — в возвращаемые значения методов, доступные клиентскому приложению.

Создав объект класса прокси, можно задействовать методы Web-сер­виса XML в своей программе, при этом возможно использование IntelliSense и контроль типов, предоставляемый Visual Studio .NET.

Сериализация

Сериализация (serialization) — это процесс преобразования объектов и значений в формат, в котором они могут быть сохранены или переданы по сети. Например, сериализованные объекты можно, записать из оперативной памяти в файл на диске. Сериализацию также применяют для передачи объектов и значений по сети. Для восстановления состояния объектов и значений из данных, прочитанных с диска или принятых из сети, используется обратный процесс, называемый десериализацией (deserialization). .NET Framework поддерживает сериализацию в двоичный формат (binary serialization) и сериализацию в XML (XML serialization).

При сериализации в двоичный формат состояние объекта, включая открытые и закрытые поля, имена класса и содержащей его сборки, преобразуется в поток байтов. Чтобы объект поддерживал сериализацию, необходимо пометить его класс атрибутом Serializable.

Соседние файлы в папке ПвИ