Доступ текущий экземпляр Page от статического класса

Основной вопрос - является этим возможный получить доступ к току Page от статического класса в ASP.NET?

Я думаю не, поскольку Google не поднимает результатов.

14
задан maxp 22 March 2010 в 19:46
поделиться

3 ответа

Технически вы можете просто получить текущий IHttpHandler для запроса. Поскольку Page реализует это, вы можете проверить, является ли он таковым.

var page = HttpContext.Current.CurrentHandler as Page;

if(page != null){
    // Do something with page
}
28
ответ дан 1 December 2019 в 07:12
поделиться

Вы можете использовать HttpContext.CurrentHandler, чтобы вернуть текущий HttpHandler для запроса. Класс Page - это просто сложный тип HttpHandler.

Чтобы получить доступ к чему-либо, связанному со свойствами Page, вам придется привести результат к типу Page.

Честно говоря, я бы по возможности использовал подход Джеффа, потому что, внедряя ссылку на страницу в вызов метода, ваш метод становится гораздо более тестируемым (не говоря уже о надежности, поскольку вы можете использовать Page напрямую). Полагаясь на все, что связано с HttpContext, вы сделаете свой код нетестируемым. Возможно, вы находитесь в ситуации, когда вы не можете спроектировать метод таким образом, но я бы предпочел сделать это именно так.

7
ответ дан 1 December 2019 в 07:12
поделиться

Самый простой способ - передать текущую страницу в качестве параметра методу, который вы вызываете в статическом классе.

3
ответ дан 1 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: