Иллюстрированный самоучитель по Architecture .NET

Арифметическая Служба Сети, или Web-служба Arithmetic (Арифметика). Использование внутренних объектов.

В данном разделе главы будет рассмотрена Web-служба Arithmetic (Арифметика), созданная на основе шаблона Managed C++ Web Service (Web-служба на управляемом C++). Мы научимся работать с внутренними объектами Web-службы.

Но прежде чем двигаться дальше, посмотрите, как выглядит Web-служба в окне вашего браузера (рис. 11.7). Из окна браузера можно запустить каждый метод Web-службы и убедиться, что методы работают корректно.

Иллюстрированный самоучитель по Architecture .NET › Web-службы › Арифметическая Служба Сети, или Web-служба Arithmetic (Арифметика). Использование внутренних объектов.
Рис. 11.7. Вид завершенной Web-службы, созданной с помощью шаблона Managed C++ Web Service (Web-служба на управляемом C++)

Использование внутренних объектов

Данная Web-служба имеет несколько методов, на примере которых мы проиллюстрируем, как используются внутренние объекты. Дальше мы увидим, что эти внутренние объекты аналогичны внутренним объектам в ASP.NET Из используемых методов те два, которые подсчитывают общую сумму чисел, иллюстрируют использование состояния приложения и состояния сеанса.

В соответствующих обработчиках событий, которые содержатся в файле global.asax.h, значение суммы инициализируется нулем. Для Web-служб файл Global.asax.h играет ту же роль, что и для ASP.NET. Назначение этого файла подробно обсуждалось в главе 10 "ASP.NET и Web-формы". Так как класс Glooal является производным от класса System::Web::HttpApplication (Система "Сеть" HttpApplication), то он может получить доступ ко внутренним объектам Application (Приложение) и Session (Сеанс).

public _gc class Global:
// класс сборщика мусора Глобальный:
public System::Web::HttpApplication
// общедоступная Система::Сеть::HttpApplication
{
protected: // защищенный
void Application_Start(Object *sender, EventArgs *e)
{
Application › set_Item("TotalSum", _box(0.0));
// Приложение
}
void Session_Start(Object *sender, EventArgs *e)
{
Session › set_Item("SessionSum", _box(O.O)); // Сеанс
}
…
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.