Отличные ответы от ребят, но я бы предостерег вас от того, чтобы всегда полагаться на сессию. Это быстро и легко сделать, и, конечно, будет работать, но не будет хорошо во всех случаях.
Например, если вы столкнулись со сценарием, в котором ваш хостинг не позволяет использовать сеанс, или если вы находитесь в веб-ферме, или в примере общего приложения SharePoint.
Если вам нужно другое решение, вы можете использовать Контейнер IOC , например Castle Windsor , создать класс провайдера в качестве оболочки и затем сохранить один экземпляр вашего класса, используя в соответствии с запросом или сессионным образом жизни в зависимости от ваших требований.
МОК обеспечит, чтобы каждый раз возвращался один и тот же экземпляр.
Сложнее, да, если вам нужно простое решение, просто используйте сеанс.
Ниже приведены некоторые примеры реализации, представляющие интерес.
Используя этот метод, вы можете создать класс провайдера в соответствии с:
public class CustomClassProvider : ICustomClassProvider
{
public CustomClassProvider(CustomClass customClass)
{
CustomClass = customClass;
}
public string CustomClass { get; private set; }
}
И зарегистрируйте что-то вроде:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ICustomClassProvider>().UsingFactoryMethod(
() => new CustomClassProvider(new CustomClass())).LifestylePerWebRequest());
}