Grandes respuestas de los muchachos, pero les advierto que no confíen siempre en la sesión. Es rápido y fácil hacerlo, y por supuesto funcionaría, pero no sería excelente en todas las circunstancias.
Por ejemplo, si se encuentra con un escenario en el que su alojamiento no permite el uso de la sesión, o si se encuentra en una granja de servidores web, o en el ejemplo de una aplicación de SharePoint compartida.
Si desea una solución diferente, puede utilizar un contenedor IOC como Castle Windsor , crear una clase de proveedor como envoltorio y luego mantener una instancia de su clase utilizando el estilo de vida por solicitud o sesión, según sus requisitos.
El COI se aseguraría de que se devuelva la misma instancia cada vez.
Más complicado sí, si necesita una solución simple, simplemente use la sesión.
Estos son algunos ejemplos de implementación a continuación por interés.
Con este método, podría crear una clase de proveedor en la línea de:
public class CustomClassProvider : ICustomClassProvider
{
public CustomClassProvider(CustomClass customClass)
{
CustomClass = customClass;
}
public string CustomClass { get; private set; }
}
Y regístralo algo como:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ICustomClassProvider>().UsingFactoryMethod(
() => new CustomClassProvider(new CustomClass())).LifestylePerWebRequest());
}