2010-03-22 12 views

Respuesta

25

Técnicamente, puede obtener la IHttpHandler actual para la solicitud. Como Page lo implementa, entonces podría verificar si es uno.

var page = HttpContext.Current.CurrentHandler as Page; 

if(page != null){ 
    // Do something with page 
} 
7

Se puede utilizar para devolver el HttpContext.CurrentHandler HttpHandler actual de la solicitud. Una clase de página es simplemente un tipo complejo de HttpHandler.

Para acceder a cualquier elemento relacionado con las propiedades de la página, deberá enviar el resultado al tipo Page.

Honestamente, tomaría el enfoque de Jeff si es posible, porque al inyectar la referencia de página en la llamada al método, su método es mucho más comprobable (sin mencionar que es confiable, ya que puede usar la página directamente). Confiar en cualquier cosa que tenga que ver con HttpContext tiende a hacer que su código no sea comprobable. Quizás estás en una situación en la que no puedes diseñar el método de esa manera, pero sería la forma en que preferiría hacerlo.

+0

De acuerdo, tengo una fuerte sospecha de que httpcontext es un desastre cuando se trata de enhebrar también. – maxp

2

La manera más simple tiene que ser pasar la página actual como un parámetro para el método que está llamando en la clase estática.

+0

Sí, probablemente 'más limpio', es una pena que esté enterrado cerca de 5 llamadas al método de profundidad ... – maxp

+0

¡Yuck! HttpContext.Current es entonces, a menos que tengas la oportunidad de refactorizar. –

Cuestiones relacionadas