Delphi - сбориник статей

       

Атрибут WebMethod


Как и было заявлено выше, обычный метод класса отличается от метода, публикуемого WEB-сервисом только наличием атрибута WebMethod. Данный атрибут имеет составной характер, т.е может содержать следующие податрибуты (Рассмотрим лишь некоторые из них):

  • CacheDuration - Кэширование результатов работы метода на заданное количество секунд. (например, метод с такими атрибутами будет хранить результат своей работы в течении 15 секунд : [WebMethod(CacheDuration="15")] ).
  • Description - Добавляет текстовое описание WEB-метода.
  • MessageName - Имя WEB-метода. Полезно, например, когда нужно опубликовать перегруженный метод класса.(наличие двух одноименных WEB-методов запрещено)

В качестве примера давайте добавим к нашему классу еще два метода и добавим описание к существующему методу HelloWorld:

TWebService1 = class(System.Web.Services.WebService) // Экономия места public constructor Create; // Sample Web Service Method [WebMethod (MessageName = 'HelloWorld' , Description = 'Простой метод')] function HelloWorld:String; [WebMethod (MessageName = 'IntegerSubstract')] function Substract(a,b:Integer):Integer;overload; [WebMethod (MessageName = 'FloatSubstract')] function Substract(a,b:Single):Single;overload; Реализация методов тривиальна: function TWebService1.Substract(a,b:Integer):Integer; begin Result := a - b; end; function TWebService1.Substract(a,b:Single):Single; begin Result:= a - b; end;

Запустите добавленные WEB-методы. Обратите внимание, что мы использовали механизм перегрузки функций, но при этом не пострадали от ограничений связанных с именованием WEB-методов: WEB-сервис предоставляет их как методы с различными именами.



Содержание раздела