Architecture Net



         

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


[System::Web::Services::WebMethod(EnableSession = true)]


// [Система::Сеть::Службы::WebMethod (EnableSession = истина)]


double SessionSum(double x)
{
double d = *dynamic_cast<Double *>
(Session->get_Item("SessionSum")); // Сеанс
Session->set_Item("SessionSum", _box(d + x)); // Сеанс
return *dynamic_cast<Double *>
(Session->get_Item("SessionSum")); // Сеанс
}
[System: :Web: : Services: :WebMethod]
// [Система: :Сеть: -.Службы: :WebMethod]
double CumulativeSum(double x)
{
double sum = *dynamic_cast<Double *> // сумма
(Application->get_Item("TotalSum")); // Приложение


sum = sum + x;
// сумма = сумма + x;
Application->set_Item("TotalSum", _box(sum)); // сумма
return *dynamic_cast<Double *>
(Application->get_It^m("TotalSum")); // Приложение


}
...

Метод GetUserAgent иллюстрирует, как с помощью объекта Context (Контекст) извлечь информацию о запросе. Тип используемого клиента возвращается Web-службе. Для извлечения информации из внутреннего объекта Server (Сервер) служит метод

GetServerlnfo.
[System::Web::Services::WebMethod]
// [Система: -.Сеть: :Службы: :WebMethod]
String *GetUserAgent()
{
return Context->Request->UserAgent;
// Koнтeкст->3anpoc->UserAgent;
}
[System::Web::Services::WebMethod]
// [Система::Сеть::Службы::WebMethod]
String *GetServerInfo()
{
String *msg = String::Format(
// Строка *msg = Строка:: Формат (
"Timeout for {0} = {!}; Located at {2}",
// "Время ожидания для {0} = {1}; расположенного в {2} ",


Server->MachineName, // Сервер _box(Server->ScriptTimeout), // Сервер
Server->MapPath(""}); // Сервер
return msg; // сообщение
}

Возможности Web-службы будут продемонстрированы с помощью консольной программы [Вам придется самостоятельно скопировать файл Anthmetic.dll из каталога Anthmetic\Debug в каталог AnthmeticClient\Debug. Если этого не сделать, при попытке запустить файл ArithmeticChent.exe возникнет необрабатываемое исключение (System.lO.FileNotFoundException).] ArithmeticClient. Создать класс-заместитель можно в среде Visual Studio.NET. Для этого в меню Project (Проект) выберите команду Add Web Reference (Добавить Web-ссылку), затем в строке Address (Адрес) введите адрес Web-службы и нажмите клавишу Enter. В данном примере нужно ввести следующий унифицированный указатель информационного ресурса (URL) http: //localhost/Arithmetic/Arithmetic.asmx. В диалоговом окне будет отображена информация о Web-службе Arithmetic (Арифметика), рис. 11.8.




Содержание  Назад  Вперед