Когда я пишу:ASP.NET - Предоставление сеанса объекта значение по индексу вызывает ошибку
Session["conString"]= theConString;
Он отлично работает. но если я пытаюсь написать:
Session[0] = the ConString;
я получаю «Индекс был вне диапазона Должно быть неотрицательным и меньше, чем размер коллекции.» ошибка. Я понимаю, что это типичная ошибка для массивов. Это означает, что я пытаюсь установить значение объекта, который не существует. Но почему я могу это сделать, указав имя для объекта сеанса. Есть способы сделать это: 1Создание имени строки или числового индекса. Мне нужен этот параметр, потому что на других страницах я не хочу запоминать имена строк, вместо этого я хочу объявлять глобальные константы и обращаться к ним с использованием этих константных имен.
Хм, так что есть специальный кредит, предоставляемый способом использования именованного ключа. Таким образом, он делает что-то вроде Session.Add («conString», theConString) правильно? Тогда указание именованного ключа оказывается ярлыком для этого метода. –
Теперь я помню, что я могу также объявлять строковые константы. –
По существу, да. ИМХО, позиционный индексист на Сессите выглядит глупым и имеет запах кода, но я полагаю, что может быть некоторая причина перечислить элементы по индексу и, возможно, заменить их. В любом случае, в практическом мире вам нужно будет только получить/установить сеансовые элементы с помощью ключа. – HackedByChinese