Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 348

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 342 343 344 345 346 347 < 348 > 349 350 351 352 353 354 .. 404 >> Следующая


Теперь можно увидеть новую web-ссылку на local host, а также соответствующие документы DISCO и WSDL, которые. были отправлены клиенту (см. рис. справа).

Евшизаггатзш^ктва

____'

ё

[3-- ИеЬгшхм

0- ^WebHWtrencM

1 е в?

— № itefeitnce.nup ^ 5avfcel.dw>

! 5l Sefvicel.wKj

- 0 Аясо'ЫуМо-с*

-- Щ №ml.u
Web-службы

743

В Solution Explorer нельзя увидеть, что был создан новый класс, в котором реализован посредник на стороне клиента, преобразующий вызовы методов в формат SOAP. Чтобы просмотреть этот класс, необходимо переключиться в окно Class View. Там можно увидеть, что создано новое пространство имен, включающее в себя имя сервера, в данном случае — localhost. Класс Servicel является производным от класса Syзtern.Web.Services.Protocols.SoapHttpClientProtocol и в нем реализуется метод ReversestringO, предоставляемый web-службой.

Щелкните два раза мышью на методе ReversestringO, для того чтобы открыть автоматически сгенерированный файл servicel.cs. Рассмотрим код, который был создан программой-мастером.

ЕЕЕНЕ3533Д]

в Я

SfcnpluCltcrrt

3- [1 9n0aOmt $ (> bofust

Servicel

Bum end Irttrfacai

I - *6 B»0rA6vt<feStnng(fIfinf,Sy«tem.A«y &>dRev«ise5trtig(Syrteffl'IAsyTKft«H. ¦ Rewf«!Wng(stn)g)

L ~Л SenicelO

ffi Formi

//-------------------

// <autogenerated>

//

//

//

//

This code was generated by a tool. Runtime Version: 1.0.2914.16

/Этот код сгенерирован инструментом./

Changes to this file may cause incorrect behavior and will be lost if

/Любые изменения, внесенные в этот Файл, могут привести к неправильной работе программы/

// the code is regenerated.

/ и будут потеряны, если код будет сгенерирован повторно./

// </autogenerated>

//-----------------------------------------------------------------------------------------

namespace SimpleClient.localhost ( using System.Diagnostics; using System.Xml.Serialization; using System;

using System.Web. Services. Protocols,-using System.Web.Services;

[System,web,Services.WebServiceBindingAttribute(Name«*ServicelSoap*, Namespace»"http://www.wrox,com/webservices*)] public class Servicel i

Syatem.Web.Services.Protocols.SoapHttpCllentProtocol {

В конструхторе свойству uri присваивается значение web-службы. Это свойство будет использоваться в классе soapHttpciientProtocol для обращения к web-службе:

[System.Diagnostics.DebuggerStepThroughAttribute()] public Servicel() {

this,Uri = *http://localhost/MebServiceSampl< Servicel.авшх*;

Наиболее важным является метод, который собственно и предоставляет web-служба,— ReversestringO. В данном случае метод имеет тот же самый параметр, что и в реализации этого метода на сервере. Реализация метода ReversestringO на стороне клиента обращается к методу invoke)) базового класса soapHttpclient-protocoi. Этот метод создает SOAP-сообшенне, в котором используется имя ReverseString И параметр message:

[System.Diagnostics.DebuggerStepThroughAttribute{)1 [System.Web.Services.Protocols.SoapDocumen tMethodAt tribu te(

'http://www.wrox.com/webservices/ReverseString', RequestNameepace="http://www,wrox.com/webservices', ResponseNamespace="http;//www.wrox.com/webservices",
Глава 25

Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=

System.Web.Services,Protocols,SoapParameterStyle.Wrapped)] public string ReverseString(string message)

С

object!] results = this.Invoke('ReverseString', new object!)

(message));

return ((string)(rosults(O))) ;

)

Клиент также может вызывать web-службу асинхронно. У метода BeginReverse-stringo имеются только те параметры, которые отправляются на сервер, а метод EndReversestringO возвращает полученный результат:

(System.Diagnostics.DebuggerstepThroughAttribute()]

public System.IAsyncResult BeginileverseString (string message.

System.AsyncCallback callback, object asyncState)

(

return this.Beginlnvoke<'ReverseString', new objectH (

message), callback, asyncState);

[System.Diagnostics,DebuggerStepThroughAttribute()]

public string EndReveraeString(System.IAsyncResult asyncResult)

{

. object!) results = this.Endlnvoke(asyncResult);

return t(string)(results[0]));

)

)

До этого момента нам не пришлось написать самостоятельно ни единой строки кода для клиента. Мы создали простой пользовательский интерфейс и использовали меню Add Web Reference для создания класса посредника. Теперь надо связать их между собой.

4. Добавьте обработчик событий Click для кнопки и включите следующие две строки кода:

private void buttonl_Click(object sender. System.EventArgs e)

II I. и i I _______________________

localhost.Servicel ws = new localhost.ServicelОj

textBox2.Text = ws.KeverseString(textBoxl.Text);

)

Как это работает

В следующей строке мы создаем новый экземпляр класса посредника. Как видно а реализации конструктора, свойству url присваивается web-служба:

localhost.Servicel ws = new localhost.ServicelI);

При вызове метода ReverseString о на сервер отправляется SOAP-сообщение, что приводит к вызову web-службы:
Предыдущая << 1 .. 342 343 344 345 346 347 < 348 > 349 350 351 352 353 354 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.