ASP.Net中静态类的生命

Cra*_*aig 1 c# asp.net session

在我的UI层中,我将一些时区信息存储在会话状态中.

我现在需要访问我的服务/业务/数据层中的时区.

从我的UI层,我传递登录用户的UserID,我的数据库具有为该用户存储的时区信息.我宁愿不用用户ID传递时区.

时区仅用于时间很重要的几个呼叫.(项目已经启动,今天是休假的人......等等).

我想可能有一个静态类,它在所有层(服务/业务/数据)上引用,它有一个时区信息字段.我希望它是静态的,以便我可以参考它:

var CurrentDate = CommonClass.GetLocatDateTime(_userId);
Run Code Online (Sandbox Code Playgroud)

这可能会回归DateTime.

然后,如果CurrentDate == null,使用UserId,从该数据库获取该用户的TimeZoneId - 因此,数据库调用只会发生一次,并且只有在之前没有发生时才会发生.

但是,静态类何时"出生"和"被杀"?

它是每个用户的会话?或者是在Asp.Net应用程序运行时?当我说用户会话时,我的意思是,每次用户点击某些内容时,都会创建一个新会话,因此,我的静态类会被创建吗?或者静态类对所有其他会话"可见"吗?我希望它仅限于当前用户.

Dar*_*rov 5

但是,静态类何时"出生"和"被杀"?

您不需要该类的引用来访问静态成员.所以从来没有出生或死亡.

它是每个用户的会话?

不,它对您的整个应用程序是全局的,并在所有用户之间共享.

我希望它仅限于当前用户.

然后忘记静态成员并使用会话.