Architecture Net или что такое Microsoft.NET?




Код, генерируемый шаблоном Managed C++ Web Service (Web-служба на управляемом C++)

Шаблон Managed C++ Web Service (Web-служба на управляемом C++) создает код стартовой системы для проекта Web-службы. На рис. 11.6 приведено окно Solution Explorer (Поиск решения), в котором открыт проект ManagedWebService.
Файл ManagedWebService. asmx содержит следующую строку

<%@ WebService Class= ManagedWebService.Classl %>

Кроме этого файла в состав проекта еще входит исходный файл ManagedWebService. срр и связанный с ним заголовочный файл ManagedWebService.h. Обратите внимание, что файл ManagedWebService. h содержит директиву #using, которая ссылается на сборку System. Web. Service. dll. В этой сборке содержится важная информация о типах, используемых Web-службой Кроме того, можно видеть, что Web-служба реализована с помощью класса Classl, который принадлежит пространству имен ManagedWebService. Данный класс содержит метод HelloWorld, который имеет атрибут [System: :Web: : Services: :WebMethod] ([Система-Сеть-.Службы-WebMethod]). Этот атрибут необходим для того, чтобы Web-клиент мог вызвать данный метод как метод Web-службы. Код, который содержится в исходном файле ManagedWebService . срр приведен ниже.

5.gif

Рис 11.5. Вид, который имеет Web-служба, построенная с помощью шаблона Managed C++ Web Service (Web-служба на управляемом C++)

#mclude "stdafx.h"
tinclude " ManagedWebService.h"
#include "Global.asax.h"
namespace ManagedWebService
// пространство имен ManagedWebService
{
// ПРИМЕР WEВ-СЛУЖБЫ
// Пример службы HelloWorld () возвращает...
// Чтобы проверить эту Web-службу, убедитесь, что .asmx...
// в свойствах проекта
// установлен в качестве отладочного
// унифицированного указателя информационного ресурса (URL)
// для протокола передачи гипертекстовых файлов HTTP.
// и нажмите F5.
String _go* Classl::HelloWorld()
{
// TODO: Add the implementation of your ...
// TODO: Добавьте реализацию вашего...
return S"Hello World!";
// Привет, мир! }
};

6.gif

Рис 11.6 Окно Solution Explorer (Поиск решения), в котором открыт проект Web-службы на управляемом C++, созданный на основе шаблона Managed C++ Web Service (Web-служба на управляемом C++)

Теперь приведем содержимое исходного файла ManagedWebService .h

// ManagedWebService .h
#pragma once
#using <System.Web.Services.dll>
using namespace System;
// использование пространства имен Система;
using namespace System::Web;
// использование пространства имен Система::Сеть;
using namespace System::Web::Services;
// использование пространства имен Система::Сеть::Службы;
namespace ManagedWebServiee
// пространство имен ManagedWebServiee
{
public _gc // сборщик мусора
class Classl : public WebService // класс Classl: WebService
{
public:
// ПРИМЕР WEB-СЛУЖБЫ СЕТИ
// Пример службы HelloWorld() возвращает...
// Чтобы проверить эту Web-службу, убедитесь, что...
// установлен для проекта в качестве отладочного
// унифицированного указателя информационного ресурса (URL)
// для протокола передачи гипертекстовых файлов HTTP..
// и нажмите F5.
[System::Web::Services::WebMethod]
// [Система::Сеть::Службы::WebMethod]
String _gc* HelloWorld();
// TODO: Add the methods of your Web Service here
// TODO: Добавьте здесь методы вашей Web-службы
};
}

Кроме рассмотренных выше файлов, были также созданы следующие файлы: Global.азах, ManagedWebServiee.vsdisco и Web.config. Файл обнаружения ManagedWebServiee . vsdisco — это файл в формате XML. Он был создан мастером, и используется клиентами при поиске Web-службы.
Чтобы просмотреть Web-службу и увидеть, как работает метод HelloWorld, можно воспользоваться стандартным броузером, как и в предыдущем примере. При этом мы со-. всем не изменили исходный проект ManagedWebServiee, созданный с помощью шаблона Managed C++ Web Service (Web-служба на управляемом C++). В следующем разделе мы рассмотрим проект Arithmetic (Арифметика), который был создан аналогично проекту ManagedWebServiee. А вот код проекта Arithmetic (Арифметика), сгенерированный с помощью шаблона Managed C++ Web Service (Web-служба на управляемом C++), был сильно изменен, прежде чем он приобрел окончательный вид.