Создаваемая веб-служба чрезвычайно проста. Она называется и реализует четыре основных арифметических действия: слоя вычитание, умножение и деление. Каждая из этих операций прив ет два параметра (два вещественных числа) и возвращает веще ное число. Сам класс будет написан на языке С#, а веб-служба он кована в ASP.NET.
Создайте новый файл в текстовом редакторе и добавьте в него строки:
using System; using System.Web; using System.Web.Services;
Этот программный код не добавляет к приложению какую-либо < циональность, но позволяет сохранить силы и время, избавляя : необходимости каждый раз писать полные имена классов, т. к. ви1 дете использовать классы из этих пространств имен.
Затем создайте пространство имен WroxServices и класс с и» Math, наследующий от класса System. Web. Se rvices. WebSe rvice:
namespace Wrox.Services {
[WebService (Description = "Предоставляет четыре арифметические футе Namespace = "http://www.wrox.com/services/math")]
public class Math : System.Web.Services.WebService {
// здесь будет располагаться программный код класса
>
}
Ключевое слово namespace имеет тот же смысл, что и пространства i в XML: оно означает, что полное имя класса Math будет выглядеть! Wrox. Services .Math. Прямо внутри определения пространства имен] ется атрибут WebService, он помечает класс, определение которого! чинается со следующей строки, как веб-службу. Этот атрибут доб ет дополнительные функциональные возможности, такие как ав тическая генерация файла WSDL. Обратите внимание и на пара Description (он тоже будет включен в состав файла WSDL).
Далее расположено имя класса Math, который наследуется от ба класса System. Web. Services. WebService. Механизм наследования изб ет вас от необходимости писать дополнительный программный код! разработке веб-служб, т. к. весь необходимый для этого код уже ] ся в составе базового класса. Это позволяет сосредоточиться толь написании методов, которые будут опубликованы в составе веб-
Описать метод для веб-службы ничуть не сложнее, чем обычный] тод: достаточно отметить его атрибутом WebMethod:
[WebMethod(Description = "Возвращает сумму двух вещественных чисел")]
public float add(float ор1, float ор2)
{
return ор1 + ор2;
}
Как видите, метод чрезвычайно прост. (Что может быть проще опера¬ции сложения?) Любой метод, снабженный атрибутом WebMethod, счи¬тается частью веб-службы. Параметр Description будет включен в со¬став файла WSDL. Методов может быть сколько угодно, однако наш пример, полный программный код которого приводится ниже, содер¬жит четыре метода выполнения арифметических операций:
using System;
using System.Web;
using System.Web.Services;
namespace Wrox.Services {
[WebService (Description = "Предоставляет четыре арифметические функции",
Namespace = "http://www.wrox.com/services/math")] public class Math : System.Web.Services.WebService {
[WebMethod(Description = "Возвращает сумму двух чисел")] public float add(float op1, float op2)
return op1 + op2;
[WebMethod(Description = "Возвращает разность двух чисел")] public float subtract(float op1, float op2)
return op1 - op2;
[WebMethod(Description = " Возвращает произведение двух чисел")] public float multiply(float op1, float op2)
return op1 * op2;
[WebMethod(Description = " Возвращает частное двух чисел")] public float divide(float op1, float op2)
return op1 / op2;
}
}
Сохраните этот файл под именем Math. asmx. cs в каталоге Math.
Создайте еще один файл и введите в него такой текст:
<%@WebService Language="c#" Codebehind="Math.asmx.cs" Class="Wrox.Services.Math" %>
Это файл ASP.NET, использующий класс, который вы только что« дали. Директива ©WebService сообщает, что страница будет раб как веб-служба. Значения остальных атрибутов должны быть вал лее или менее понятны: атрибут Language описывает язык, на ко написан программный код, атрибут Codebehind описывает имя i содержащего программный код, и атрибут Class описывает полное] класса. Сохраните этот файл под именем Math. asmx в каталоге Math.