2009-02-17 18 views
13

¿Puedo llamar al HttpContext.Current desde una clase estática y Método?HttpContext.Current accedido en clases estáticas

Quiero almacenar un valor por usuario pero quiero poder tener acceso a él de manera estática.

p. Ej. esto funcionara?

public static class StaticClass 
{ 

    public static string SomeThing 
    { 
     get { return HttpContext.Current.Items["SomeItem"].ToString(); } 
    } 

} 

Respuesta

13

Sí esa es una forma en que es útil, por supuesto, el hilo en el que se le llama actualmente debe estar procesando una solicitud para que sea útil.

5

¿Por qué no lo intentas?

sí, es perfectamente posible (aunque no es necesariamente un buen diseño), recuerde hacer referencia a System.Web.dll en su proyecto y comprobar HttpContext.Current para null en caso de que va a terminar ejecuta en un entorno non-ASP.NET.

5

Sí, es un método estático para que pueda llamar desde donde desee. Como dice Anthony, el contexto "actual" depende del hilo de llamada, por lo que debe asegurarse de estar utilizando el hilo correcto.

+0

La clase y las propiedades solo se llamarán desde dentro de las páginas web. Así que supongo que siempre obtendré el contexto actual del hilo correcto. ¿Es correcto o me estoy perdiendo algo? –

+2

Debería estar bien siempre y cuando no estés haciendo ningún funky threading (por ejemplo, usando el threadpool dentro de tus páginas web). –

+0

Genial, no, no lo soy. Saludos Jon –

Cuestiones relacionadas