Могу ли я использовать статические классы в asp.net/c# для общих данных? - PullRequest
0 голосов
/ 07 мая 2010

Вот моя ситуация: я строю онлайн-систему для школьных групп. Только одна школа может войти в систему одновременно, и из этой школы вы получите около 13 пользователей. Затем они переходят в учебное приложение, в котором им приходится сотрудничать для выполнения задач и с кодовой точки зрения обмениваться переменными повсеместно.

Я думал, что если я установлю статический класс со статическими свойствами, которые содержат переменные, которые должны быть общими, это может избавить меня от необходимости хранить / обращаться к переменным в / из базы данных, пока статический переменные все правильно инициализируются при запуске приложения и очищаются в конце. Конечно, мне также пришлось бы устанавливать блокировки на методы get и set, чтобы сделать переменные безопасными.

Что-то в глубине моего сознания говорит мне, что это может быть ужасным способом идти о вещах, но я не уверен точно, почему, так что если люди могли бы дать мне свои мысли за или против использования статического класса в Ситуация, я был бы весьма признателен.

1 Ответ

3 голосов
/ 07 мая 2010

Если вы хотите совместно использовать переменные на своем веб-сайте, вам следует использовать Состояние приложения (System.Web.HttpApplicationState), которое доступно на любой странице asp с переменной с именем «Приложение».

Он работает так же, как переменная Session, сохраняя значения в хеш-таблице. Единственное, вам придется управлять блокировкой, чтобы она была поточно-ориентированной, но, если я хорошо помню, существуют встроенные методы или свойства для блокировки и разблокировки переменных.

Подробнее там: http://msdn.microsoft.com/en-us/library/ms178594(v=VS.100).aspx

...