реализация интерфейса на странице aspx

по причинам, выходящим за рамки этого обсуждения (скажем, xcopy aspx-страницу в каталог, чтобы нам не нужно было получать новую сборку), мы хотели бы реализовать интерфейс на aspx-странице. Скажем, если страница myPage .aspx, обычно это ваш класс в отделенном коде mypage.aspx.cs, который реализует интерфейс. Когда я делаю что-то подобное

<%@ Page Language="C#" AutoEventWireup="true"  Inherits="ICustomInterface" %>

я получаю сообщение об ошибке

Parser Error Message: 'ICustomInterface' is not allowed here because it does not extend class 'System.Web.UI.Page'.

Однако, если атрибут Inherits не указан, страница не выдает ошибку. Итак, по умолчанию, когда мы не указываем атрибут Inherits, страница наследуется от System.web.UI.Page?

Мы используем проект веб-приложения VS2008 и не выполняем предварительную компиляцию страниц aspx. Мы хотели бы перехватить запрос к этой странице в HTTPModule (начало запроса), и если запрос к странице типа ICustomInterface, мы хотели бы обработать его по-другому.

Как это может быть сделано ?


person ram    schedule 08.02.2010    source источник


Ответы (1)


Это может быть связано с тем, что параметр Inherits ожидает базовый класс, а не интерфейс.

Возможно, вы могли бы попробовать создать вторичный класс, который наследуется от System.Web.UI.Page и реализует нужный вам интерфейс.

Хотя, я просто догадываюсь об этом.

person Kirschstein    schedule 08.02.2010
comment
+1 хорошее решение; на самом деле таким образом можно реализовать несколько интерфейсов - person John K; 08.02.2010