Поделиться через


Практическое руководство. Чтение значения из состояния сеанса

Обновлен: Ноябрь 2007

В данном примере происходит обращение к свойству Item для извлечения значений из состояния сеанса.

Пример

Dim firstName as String = CType(Session.Item("FirstName"), String)
Dim lastName as String = CType(Session.Item("LastName"), String)
Dim city as String = CType(Session.Item("City"), String)
string firstName = (string)(Session["First"]);
string lastName = (string)(Session["Last"]);
string city = (string)(Session["City"]);

Компиляция кода

Для этого примера необходимо следующее:

  • Разрешается страница Web Forms или класс, имеющий доступ к контексту текущего запроса с помощью свойства Current, в приложениях ASP.NET, имеющих состояния сеанса.

Отказоустойчивость

При попытке извлечь значение из несуществующего состояния сеанса исключение не создается. Чтобы убедиться, что нужное значение есть в состоянии сеанса, следует вначале проверить существование собственно объекта следующим способом:

If Session.Item("FirstName") Is Nothing Then
    ' No such value in session state, take appropriate action.
End If
if (Session["City"] == null) 
    // No such value in session state; take appropriate action.

При попытке использовать несуществующий элемент состояния сеанса каким-либо другим способом (например выяснить его тип) создается исключение NullReferenceException.

Значения сеанса имеют тип Object. В Visual Basic, если Option Strict имеет значение On, при получении значений из состояния сеанса нужно привести их из типа Object к подходящему типу, как показано в примере. В C# при чтении значений сеанса всегда следует приводить к соответствующему типу.

См. также

Основные понятия

Общие сведения о состоянии представления ASP.NET

Общие сведения об управлении состоянием ASP.NET

Рекомендации по управлению состоянием ASP.NET

Общие сведения об управлении состоянием ASP.NET