config относится к классу фабрики, а не к классу обработчи­ка, создаваемого фабрикой. При реализации пользовательского HTTP-об­работчика без реализации фабрики обработчиков используется создавае­мый конвейером экземпляр стандартного класса Wrapper.


Стандартные обработчики

Высокоуровневые технологии ASP.NET, а именно страницы и Web-серви­сы, являются надстройкой над i П'ТР-опраГштчиками. Если взглянуть на глобальный файл .NET пш'пто.оог.Лд. можно увидеть следующие элемен­ты <int pHan<ih'is>:

<httpHandlers> <add verb="*" path=**.ashx" type= "System. Web. (JI, Siinpierlandle rFacto ry "

/>

<add verb="*" path="*.aspx"

type="System.Web.UI.PageHandle rFactory"

/>

<add verb="*" path="*.asmx" type="System,Web. Services.Protocols, WebServмceHandlerFactory ... "

/>

</lrttpHandlers>

Первый элемент сопоставляет расширение .ashx классу SimpleHandler-Factory - фабрике HTTP-обработчиков, умеющей компилировать и созда­вать экземпляр класса, реализующего IHttpHandler из исходного кода в ASHX-файле. Получившийся объект напрямую используется НТТР-кон-вейером.

На рис. 5 приведен пример TimeHandJer, переписанный в виде ASHX-файла. Директива ©WebHandler сообщает SimpleHandlerFactory имя клас­са HTTP-обработчика, экземпляр которого следует создать после компи­ляции исходного кода. Такой подход облегчает развертывание: все, что нужно сделать, - скопировать ASHX-файл в виртуальный каталог. Созда­вать или изменять файл Web.config или обновлять IIS не требуется - не­обходимая настройка уже произведена при установке .NET.

Второй элемент <httpHandlers> сопоставляет расширение .aspx классу PageHandlerFactory - фабрике HTTP-обработчиков, умеющей компили­ровать исходный код в ASPX-файле в класс, производный от System.-Web.UI.Page и создавать его экземпляр. Класс Page реализует интерфейс IHttpHandler, поэтому получившийся объект напрямую используется НТТР-конвейером.