2010-12-30 9 views
5

Si declaramos una variable static en Global.asax, ¿cómo acceder a ella dentro de una página ASP.NET?¿Cómo acceder a los miembros estáticos de Global.asax?

<script runat=server"> 

    public static object myObject = new MyClass(); 

    // Application_Start() and other stuff goes here. 

</script> 

Y, ¿es una buena idea para almacenar un objeto global (la misma instancia para todas las solicitudes)?

+0

Buena pregunta, suponiendo que siempre vuelve a inicializar el objeto en Application_Start(). –

+0

variable 'estática' no se puede encontrar aunque 'asp.net' permite la declaración. Si conocemos la codificación dentro de los mapas 'Global.asax' a qué clase, entonces podemos acceder a esa variable. – Xaqron

+0

Suena como si estuvieras haciendo esto completamente al revés, Xaqron. Tal vez si publica una pregunta "más amplia" obtendrá una respuesta más satisfactoria. – Greg

Respuesta

4

myObject debe estar disponible para todos los métodos en global.asax y dentro de sus páginas ASP.NET utilizando

Global.myObject 
+0

Voy a usarlo dentro de un 'HttpHandler' así que tengo acceso a' HttpContext' pero no está allí. – Xaqron

+0

puedes hacerlo pero un poco diferente para los manipuladores. vea esta respuesta http://bit.ly/eT4E71 – phillip

+1

@philip: No use acortadores de URL en stackoverflow. Utilice la URL completa o use '[Url Title] (http://www.example.com/address)'. – Brian

0

Personalmente, me gustaría fuertemente a votar contra el uso de variables globales en ASP.NET. Tuve experiencias bastante malas algunos años atrás.

Debe sincronizar el acceso a los miembros de su instancia global MyClass para asegurarse de que funciona correctamente en un escenario de multi-threading (que es probable/obligatorio si entran varias solicitudes).

También está el ApplicationState que puede usar, according to Microsoft, you shouldn't.

+1

si es inmutable, podría estar bien usarlo – Omu

0

global no está definido que funciona para mí:

ASP.global_asax ejemplo

ASP.global_asax.DefaultModel.GetTable ("etiquetas");

Cuestiones relacionadas