![]() |
![]() |
![]() |
Передача структур в качестве входных и выходных параметров Вот простой пример того, как метод Web-службы может использовать структуры в качестве входных и выходных параметров. В исходный файл ATLServerWeb.h была добавлена структура MyStructure (Моя структура), содержащая два элемента типа int. Кроме того, в интерфейс IATLServerWebService был добавлен новый метод CopyMyStructure (Копировать мою структуру), который в качестве параметров передает в MyStructure указатели и принимает их от нее. Затем данный метод реализуется в классе CATLServerWebService. namespace ATLServerWebService
А вот клиентский код, который проверяет передачу входных и выходных параметров. // передача указателей на структуры
Приводимая далее выдача программы доказывает, что маршализация структуры может выполняться в обоих направлениях. Вначале элементы х и у структуры ms2 содержат нулевые значения. Во время вызова метода CopyMyStructure структура ms2 изменяется, поскольку элементы копируются из msl, а затем ms2 передается обратно клиенту. msl.x: 10, msl.y: 20, ms2.x: 0, ms2.y: 0
Сейчас вас, возможно, удивит, зачем было затевать столько работы. И чем это все лучше предоставления функций в виде динамически подключаемой библиотеки (DLL) или вызова удаленных процедур (RFC — Remote Procedure Call) или распределенной модели компонентных объектов (DCOM — Distributed Component Object Model)? Так вот, "крутизна" Web-службы как раз в том, что она, в отличие от динамически подключаемой библиотеки (DLL), может находиться в любом месте Internet. Кроме того, Web-службы, в отличие от вызова удаленных процедур (RFC — Remote Procedure Call) или распределенной модели компонентных объектов (DCOM — Distributed Component Object Model), создаются на основе языка XML и SOAP. В дальнейшем это позволит вам применять некоторые интересные возможности, связанные с интеграцией. |
![]() |
![]() |
![]() |