Класс атрибута WebMethod служит для указания того обстоятельства, что метод вашего сервиса должен предоставляться через Web-сервис. Это объявление обязательно для всех тех методов, которые вы хотите сделать доступными через Web-сервис.
При описании Web-метода вы можете настроить различные параметры. Они управляют тем, как работает Web-метод. Например, для указания описания метода необходимо настроить
Параметр Description. Далее приведен более полный список параметров атрибута WebMethod.
□ Description— используется для предоставления описания Web-метода. Это описание будет видно вызывающим клиентам, а также в документации по данному Web-методу.
□ EnableSession— применяется для указания, нужно ли активировать состояния сеансов для данного Web-метода. Установка его в значение True позволит вам сохранять и получать элементы в сеансе. Если вы настроите его в значение True и наследуете от WebService, то получите доступ к сеансу из объекта Session (WebService. Session). Если же вы не наследуете от WebService, то по-прежнему можете настроить этот параметр в значение True. Однако для получения объекта сеанса вам придется пройти по всему пути HttpContext.Current.Session.
□ CacheDuration— используется для указания, что результаты Web-сервиса должны кэшироваться в течение определенного промежутка времени. Для этого параметра вы устанавливаете длительность в секундах. Включение этого кэширования приведет к кэшированию ответов для каждого уникального набора параметров, переданных в Web- сервис (аналогично кэшированию вывода в ASP.NET).
□ MessageName— используется для определения алиаса или отдельного имени для данного Web-метода. Эта возможность полезна в том случае, когда вам нужны перегруженные методы, которые поддерживаются в .NET, но не поддерживаются Web- сервисами. Таким образом, вы можете сохранить свои перегруженные методы и присвоить каждому из них уникальное имя при помощи этого параметра.
□ Buf ferResponse — применяется для указания, следует ли весь ответ буферизировать в памяти сервера перед тем, как передавать его обратно по проводам вызывающему кли-f енту. Значение по умолчанию этого параметра— True. Если вы установите его в False, то ответ будет буферизироваться блоками по 16 Кбайт и передаваться клиенту по одному блоку.
□ TransactionOption— используется для указания, должен ли Web-сервис быть корнем транзакции. По умолчанию Web-сервисы не могут участвовать в других транзакциях. Однако они могут вызывать объекты, которые участвуют в транзакции вместе с Web-сервисом.