Практическое руководство. Чтение значения из состояния сеанса
Обновлен: Ноябрь 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