Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

</s:complexType>

</s:element>

<s:element name="int" type="s:int" />

</s:schema>

 </types>

 ... другие определения ...

</definitions>

Все, что требуется для запросов и ответов SOAP и HTTP, которые мы видели ранее, определяется этими типами, которые далее в этом файле связываются с такими операциями. Все типы определяются с помощью стандартного синтаксиса схемы XML, например:

<s:element name="DoSomethingResponse">

 <s:complexType>

<s:sequence>

<s:element name="DoSomethingResult" type="s:int" />

</s:sequence>

 </s:complexType>

</s:element>

Этот код определяет, что элемент с именем

<DoSomethingResponse>
имеет элемент-потомок с именем
<DoSomethingResult>
, который содержит целое число.

Если мы имеем доступ к коду WSDL для службы Web, то мы можем его использовать. Как мы скоро увидим, это не так уж трудно сделать.

Теперь, когда мы кратко ознакомились с SOAP и WSDL, пришло время посмотреть, как создаются и используются службы Web.

Службы Web

Обсуждение служб Web включает два вопроса:

□ Создание служб Web, которое связано с написанием служб Web и размещением их на серверах Web.

□ Использование служб Web, которое связано с применением на стороне клиента созданных служб.

Создание служб Web

Службы Web создают, либо помещая код прямо в файлы

.asmx
, либо, ссылаясь на классы службы Web из этих файлов. Как и со страницами ASP.NET, создание службы Web в VS.NET применяет последний подход, и он также будет использоваться для целей демонстрации.

Создание проекта службы Web, называемой

PCSWebSrv1
, как показано выше, приводит, как и для проекта приложения Web, к аналогичному множеству созданных файлов. Фактически, единственное различие состоит в том, что вместо создания файла с именем
WebForm1.aspx
создается файл с именем
Service1.asmx
. Созданный файл
.vsdisco
отвечает за идентификацию службы Web, чтобы система Visual Studio .NET, как мы вскоре увидим, могла добавить на него ссылку Web.

Код в

Service1.asmx
не доступен непосредственно через VS.NET, но просмотр с помощью Notepad показывает следующую строку кода:

<%@ WebService Language="c#" Codebehind="Service1.asmx.cs" Class="PCSWebSrv1.Service1" %>

Этот код ссылается на файл кода, который можно увидеть в VS.NET, —

Service1.asmx.cs
, доступный при щелчке правой кнопкой мыши на
Service1.asmx
в Solution Explorer и выборе View Code. Созданный код с удаленными для краткости комментариями показан ниже:

namespace PCSWebSrv1 {

 using system;

 using System.Collections;

 using System.ComponentModel;

 using System.Data;

 using System.Diagnostics;

 using System.Web;

 using System.Web.Services;

 public class Service1 : System.Web.Services.WebService {

public Service1 {

InitializeComponent;

}

private void InitializeComponent {

}

public override void Dispose {

}

 }

}

Этот код определяет пространство имен

PCSWebSrv1
с несколькими ссылками на стандартные пространства имен и класс службы Web с именем
Service1
(ссылку на который мы видели выше в файле
Service1.asmx
), производный от
System.Web.Services.WebService
. Мы должны предоставить методы для этого класса службы Web.

Добавление метода, доступного через службу Web, требует простого определения метода как

public
и задание для него атрибута
WebMethod
. Этот атрибут помечает методы, которые мы хотим сделать доступными. Вскоре мы рассмотрим типы данных, которые можно использовать для возвращаемого типа и для параметров, но пока добавим следующий метод:

[WebMethod]

public String CanWeFixIt {

 return "Yes we can!";

}

  • Читать дальше
  • 1
  • ...
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: