Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
224
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

Visual c#

Application["Uname"] = "Wombat";

Response.Write(Application[“Unamme"]);

Код в первой строке создает переменную и сохраняет в ней некоторый текст. Из-за банальной опечатки в имени переменной код следующей строки создаст и отобразит на странице новую, пустую переменную, в результате на странице тоже будет пусто. В этом случае найти ошибку просто, чего не скажешь, если такая ошибка возникнет где-то в глубине структуры решений (decision structure).

Во избежание подобных проблем следует упорядочивать доступ к переменным состояния Application и Session. Проще всего сделать это следующим образом. Для каждого необходимого элемента данных объявляются переменные на уровне страницы, затем при исполнении обработчика события Page_Load в них записываются значения переменных состояния Application и Session, а при исполнении обработчика события Page_Unload значения переменных, объявленных на уровне страницы, возвращаются в переменные состояния. Упорядоченное чтение и запись переменных состояния – полезный прием программирования, который рекомендуется взять на вооружение.

Следующий код иллюстрирует упорядоченный доступ к переменным состояния:

Visual Basic .Net

Public Class WebForm1

'Объявить переменную на уровне страницы.

Dim mstrUname As String

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load

' Получить значение переменной

mstrUname = Application(“Uname")

' Присвоить значение.

mstrUname = "Wombat"

' Использовать переменную.

Response.Write(mstrUname)

End Sub

Private Sub Page_Unload(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles MyBase.Unload

' Вернуть значение в переменную состояния.

Application(“Uname") = mstrUname

End Sub

End Class

Visual c#

string mstrUname = "";

private void Page_Load(object sender, System.EventArgs e) {

// Проверить, существует ли переменная состояния. if(Application["Uname"] != null)

// Получить значение переменной состояния.

mstrUname = Application["Uname"].ToString();

//Присвоить значение.

mstrUname = "Wombat";

// Использовать переменную.

Response.Write(mstrUname);

}

private void Page.UnLoad(object sender, System. EventArgs e){

// Вернуть значение в переменную состояния.

Application[“Uname"] = mstrUname;

}

Замечание. В случае Visual C#, прежде чем вызывать любые методы переменной состояния, например ToString(), обязательно необходимо убедиться, что ее значение отлично от null, иначе будет допущена ошибка времени выполнения (run-time error) из-за пустой переменной состояния.

Отключение переменных состояния Session

По умолчанию ASP.NET поддерживает переменную состояния Session для каждой страницы приложения. Если странице не нужна сеансовая переменная состояния, то для повышения производительности ее можно отключить.

Чтобы отключить переменную состояния Session для одной Web-формы, необходимо вызвать окно \\Web Form Properties для формы и установить значение параметра EnableSessionState в False.

Чтобы отключить переменные состояния Session во всем приложении, необходимо в файле \Web.config установить для тега <sessionstate mode> значение off.

<sessionstate mode="off" ...>

Соседние файлы в папке ПвИ