Usa una clase pública estática y accede desde cualquier lugar.
public static class MyGlobals {
public const string Prefix = "ID_"; // cannot change
public static int Total = 5; // can change because not const
}
utilizado como tal, desde la página principal o en cualquier lugar:
string strStuff = MyGlobals.Prefix + "something";
textBox1.Text = "total of " + MyGlobals.Total.ToString();
No es necesario hacer una instancia de la clase; de hecho, no puedes porque es estático.
new
Simplemente úselo directamente. Todos los miembros dentro de una clase estática también deben ser estáticos. El Prefijo de cadena no está marcado como estático porque const
es implícitamente estático por naturaleza.
La clase estática puede estar en cualquier lugar de su proyecto. No tiene que ser parte de Global.asax o de ninguna página en particular porque es "global" (o al menos lo más cercano que podamos llegar a ese concepto en términos orientados a objetos).
Puede hacer tantas como Clases estáticas como quieras y nómbralas como quieras.
A veces a los programadores les gusta agrupar sus constantes utilizando clases estáticas anidadas. Por ejemplo,
public static class Globals {
public static class DbProcedures {
public const string Sp_Get_Addresses = "dbo.[Get_Addresses]";
public const string Sp_Get_Names = "dbo.[Get_First_Names]";
}
public static class Commands {
public const string Go = "go";
public const string SubmitPage = "submit_now";
}
}
y acceder a ellos de esta manera:
MyDbCommand proc = new MyDbCommand(Globals.DbProcedures.Sp_Get_Addresses);
proc.Execute();
//or
string strCommand = Globals.Commands.Go;
¿Existe una razón cache/sesión en particular no trabajará?Técnicamente, la Aplicación es un objeto de Sesión/Caché y, por lo tanto, si está utilizando eso (de una manera no estática), ya está utilizando Sesiones. Si es la parte específica de la sesión, puede abordarse con la caché del nivel de la aplicación. – GrayWizardx
sí, porque necesito almacenar una lista grande, y el caché es solo de 16 MB, así que no quiero desperdiciar recursos de cahe ... – scatman
¿Desea un singleton? ¿Un único objeto compartido por * todos * hilos que manejan * todas * las solicitudes? O simplemente desea una forma de compartir datos entre una página maestra y una página de contenido. Si es el último, entonces las variables globales ciertamente no son una buena solución. – tarn