Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 304

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 298 299 300 301 302 303 < 304 > 305 306 307 308 309 310 .. 320 >> Следующая

Как мы сможем убедиться, функциональности нашей web-службы это нисколько не повредит. Однако выбор в качестве базового класса WebService автоматически обеспечивает нашей web-службе очень полезный набор членов, с которым мы вскоре познакомимся.
Реализуем методы web-службы
В нашей первой web-службе мы ничего не будем усложнять и ограничимся четырьмя методами, при помощи которых пользователь сможет производить элементарные арифметические операции. Все эти методы будут доступны по HTTP, но чтобы среда выполнения какие методы нужно выкладывать
по HTTP для пользователей, эти методы нужно пометить атрибутом [WebMethod]. В общем, определение нашего класса Service мы сделаем таким:
public class Servicel : System.Web.Services.WebService {
public ServiceO { Initial izeComponentO; } private void InitializeComponentO {}
public override void DisposeO {}
[WebMethod]
public int Acic: int .. int y) { return x + y; } [WebMethod]
public int Subtract (int x, int y) { return x y; } [WebMethod]
public int Multipoint x, inty) { return x * y; } WbMethod]
public int Dividednt x, int y) {
if(y = - 0) (
throw new DivideByZeroRxceotionruude. can't divide by jero'1):
Ї
756 Глава 15 • Web-службы
return x /
Работа клиента с web-службой
После того как web-служба будет откомшшір-онаиа, запустим ее на выполнение (можно прямо в Visual Studio). По умолчанию в качестве клиента будет открыто окно нашего браузера, а в нем откроется страница HTML со списком всех методов, которые мы пометили атрибутом [lM>Methoci] — см. рис. 15.4.
'3 Service 1 Web Service - Microsoft Internet tMplorcf
QIs ?dt yjew Favorites Iools ИРІр
¦¦ *'<Э id 2} I [^Personal Bar ^Search
Address |6} http:^Ьіттяпи/СаїсWebService/Cafc5ervnr] ^Go | Links *»
lServicel
The following operations are supported. For a farrr
• Mult
• Divid
• ASM
• Subtract
Ul
IC Done
iociJ intranet
Рис. 15.4. Клиент подключился к нашей web-службе
Конечно же, мы можем не только просматривать список методов web-службы, но и вызывать его прямо из браузера — заботливая среда выполнения ASP.NET позаботилась и об этом! Например, перейдем по гиперссылке на Add и введем в текстовые поля значения (рис. 15.5). Осталось только нажать кнопку Invoke, и среда выполнения ASP.NET вызовет метод, передаст ему введенные значения и вернет нам результат в формате XML (рис. 15.6).
Конечно же, метод можно вызывать и не используя графический интерфейс. Например, если мы подсмотрим, какой запрос был отправлен в web-службу, то он будет выглядеть так:
http://Иня_хоста/Са1cWebServ іce/CalcServi се.asmx/Add?x=44&y=446
Как мы видим, запрос состоит из адреса страницы с добавлением имени
метода и парами имя — значение, представляющими параметры метода.
Как мы только что убедились, создать web-службу в ASP.NET — это очень просто. Нам еще предстоит поработать с примером более серьезной службы, однако
пока мы обратимся к некоторым особенностям архитектуры web-служб ASP.NET.
Back"
Тип WebMethodAttribute 757
І Service 1 Web Service - Microsoft Internet Explore
QIe Edit tfew Favorites Tools Help
+¦Sack* ¦+ - ® la 4! | і m - --¦^ -jj^seerch r&r*vt)ra* ^1?
iKig
address |^^r//bigriianu/c«fcwebservce/cafcs«vice.«siiix?.w..atld 3 <*go ' Links
I Service І
Ciuk 1-1?: for a complete list of operations.
j
|Add
TTest
To test, click the 'invoke' button,
Parameter Value x:

446
| Irwoka |
йолр
?]Done
I I j
J local intranet
A
Рис. 15.5. Среда выполнения ¦ автоматически сгенерирует текстовые поля
ДЛЯ ввода параметров метода и прочий необходимый код
a li!lp:/'tni|ii'i<inii,'С.->!< WchS<>rv!i г ¦ W
S3*
, ¦ Я» Edit lim Favorites Tools fJ*>
-1?I x[
Jl
¦ бе*
[ ^search jJF^orfeis _ __
I j AdjoVess ?j Wtpi//b^mariu;CelcWebServfce/web5ervkel.»SiTC^1 ^Go |
<int xmlns="littp і 111 empuri .org /">49q</itrt>
IS Don*
j
intranet
4*
Рис. 15.6. Результат вычислений, возвращаемый в формате XML
Тип WebMethodAttribute
Атрибут Method (представленный типом WebMethodAttribute) должен обязательно быть указан для каждого метода web-службы, предоставляемого в распоряжение клиента. Как большинство других атрибутов .N If Т. для атрибута WebMethod можно использовать дополнительные параметры (которые на самом деле лиляются параметрами конструктора^еЬМіЧЬойАІТпЬіДе). Например, мы можем предоставить клиенту дополнительную информацию о методе web-службы:
758 Глава 15 • Web-службы
HeW^thodiDescnption = "Yet another way to add members1")] public int Ad(Kint x. int y){ return x + y; }
Как мы г.цдим, параметр on атрибута WebMethod очень похож на атрибут
["hf-lpbT.r ir.oj в IDL. А результатом его применения будет дополнительная информация о методе на web-странице (рис. 15.7).
Jr.-,, гл. . ¦ Web Service - *4it.r»»olt Internet Екріогеї"
Favorites Го :¦ Help
Oe Edit View
+> »..•.V - - 'ja j?) tiuf j DI,Pe'?<=nd Bar '.^Search r&Fworttw
Address http://bigma™/Cak:WebSerwice;Calc5erMce.asmx
The following operations are supported. For a formal defined •Ada
Предыдущая << 1 .. 298 299 300 301 302 303 < 304 > 305 306 307 308 309 310 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100