可以/我应该在asp.net/c#中使用静态类来共享数据吗?

时间:2010-05-07 01:27:51

标签: c# asp.net static-classes

以下是我的情况:我正在建立一个供学校团体使用的在线系统。任何时候只有一所学校可以登录系统,从那所学校你将获得大约13个用户。然后他们进入一个教育应用程序,在这个应用程序中,他们必须合作完成任务,从代码的角度来看,共享变量。

我在想,如果我设置一个静态类,其中包含需要共享的变量的静态属性,这可以节省我必须在数据库中存储/访问变量,只要静态当应用程序启动并在最后清理时,变量都已正确初始化。当然,我还必须对get和set方法进行锁定,以使变量线程安全。

我心中的某些东西告诉我这可能是一种可怕的事情,但我不确定为什么,所以如果人们可以给我他们的想法支持或反对使用静态类情况,我会非常感激。

1 个答案:

答案 0 :(得分:3)

如果要在网站上全局共享变量,则应使用任何具有名为“Application”的变量的asp页面中的应用程序状态(System.Web.HttpApplicationState)。

它就像Session变量一样,将值存储在哈希表中。唯一的事情是你必须管理锁定以使其成为线程安全的,但是如果我记得很清楚,有内置的方法或属性来锁定和解锁变量。

在那里阅读更多: http://msdn.microsoft.com/en-us/library/ms178594(v=VS.100).aspx