Отличные ответы от ребят, но я бы предостерег вас от того, чтобы всегда полагаться на сессию. Это быстро и легко сделать, и, конечно, будет работать, но не будет хорошо во всех ситуациях.
Например, если вы столкнулись со сценарием, в котором ваш хостинг не позволяет использовать сеанс, или вы находитесь в веб-ферме, или в примере общего приложения 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());
}