![]() |
|
Модераторы: gambit |
![]()
|
|
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Допустим я объявил свой статический класс со статическим свойством. Теперь я этому свойству где-то в коде присвоил значение. Теперь вопросы:
1. В пределах всей сессии это свойство останется присвоенным в этом классе, со всех aspx страниц я смогу его прочитать? Так? 2. В другой сессии его прочитать уже будет нельзя? Другими словми каждая сессия будет изолирована по значениям статических классов? так? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Vit, В пределах всего сайта (причем даже если данные изменились у одного пользователя, то у второго они тоже изменяться)
-------------------- |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 5 Всего: 232 |
Пока не перестартует процесс ASP.NET, все статические мемберы будут в целости и сохранности, и работать с ними может любой поток. Что-то типа расшаренных данных для разных пользователей, только в потоконебезопасном варианте.
-------------------- ![]() |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Мдя... спасибо!
А как тогда и где объявить переменную моего собственного класса, чтобы она была видима для всех страниц данного сайта но в пределах только одного пользователя, а для другого пользователся она имела бы другие значения? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 9 Всего: 186 |
Впрочем, это не лучший вариант, т.к. отсутствует строгая типизация и прочие прелести C#, так что читаем вот это. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Если честно, то мой уровень знания .net и C# пока не позволяют толком понять статью... Поэтому оставлю вопрос таким-же - возможно ли объявить где-то экземпляр класса чтобы он был доступен в пределах одной сессии со всех web форм. Если да, но это потребует каких-то акробатических номеров то для меня это пока равнозначно ответу "нет", и я не буду пока с этим заморачиваться, подожду пока у меня будет больше опыта и знаний. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Exception |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 9 Всего: 186 |
Ты можешь сохранять любые объекты в конкретную сессию (и они будут действительны только для неё):
С другой стороны, можно запросто ошибиться при получении / сохранении объекта сессии, например, допустив очепятку:
Поэтому лучшим вариантом будет создание в App_Code статического класса MySession -- строготипизированной обёртки для сессии:
Таким образом, мы создаём строготипизированные "обёртки" для каждой из переменной сессии и в дальнейшем пользуемся именно ими, а не объектом Session Это сообщение отредактировал(а) Exception - 16.4.2007, 07:28 |
||||||
|
|||||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Exception, спасибо огромное, это то что мне и хотелось услышать. Причём если я правильно понял, при создании объекта по методу:
Session["Some Another Stuff"] = new SomeAnotherStuff (); этот объект будет живым до тех пор пока открыта сессия... Так? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 9 Всего: 186 |
Именно так.
Разумеется, для каждой сессии он будет различаться |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Ещё раз спасибо! Будем считать вопрос полностью закрытым!
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 5 Всего: 232 |
Vit, при всём уважении:
1) если вопрос темы решён - хорошо бы кликнуть по линку "Пометить как решённый" 2) а по сути, можно в принципе объявить статическое поле в любом классе, например в классе страницы. -------------------- ![]() |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Забываю... кнопка неудачно расположена, так что её не видно, да и нажать на неё можно только с постом... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Так, не совсем решён...
Я попытался так использовать, но возникли серьёзные проблемы. Вот простой пример... 1) У меня есть начальная web-форма, на её Load я создаю несколько сессионных переменных. Например я там задаю Connection String к базе данных и буду хранить её в сессии. 2) У меня есть модуль с библиотеками моих классов для обработки многих вещей, просто не люблю чтобы код который используется во многих формах был разбросан по кодам, я его собираю в одном файле. Например у меня есть класс который выполняет запросы к базам данных, все SQL запросы идут через этот класс, там же хранятся и все SQL коды, т.е. всё что связано с базами тут. Клас статический, потому как функции однотипны, фактически это библиотека функций. И вот в этом классе объект Session не виден. Сначала думал что из-за того что класс статический, но убрал директиву static, всё равно не видит, добавил в using вроде всё... (кстати, а что надо добавлять?) тоже не виден... И как быть с этим? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 9 Всего: 186 |
Я же показывал, что лучше действовать не через Session, а через свой статический класс
Просто Session -- это свойство страницы, и этот объект виден только в её контексте. Чтобы обратиться к сессии не из страницы, используй объект HttpContext.Current.Session. И всё-таки, пересмотри ещё раз этот пост. Это сообщение отредактировал(а) Exception - 16.4.2007, 06:23 |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Всем огромное спасибо, вроде разобрался, теперь уж точно всё работает.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |