静态属性如何在asp.net环境中工作?

asa*_*yer 20 c# asp.net static properties

如果我有一个具有静态属性的类,该类在用户加载特定页面时设置,那么该用户会话的静态值是否是唯一的?

换句话说,如果第二个用户然后加载页面并设置静态属性,每个用户是否会有一个不同的值,或者都将使用第二个用户值?

Bob*_*Bob 16

静态对于应用程序域是唯一的,该应用程序域的所有用户将为每个静态属性共享相同的值.当你看到单词static时,请想"只有一个这样的实例".该实例持续多长时间是一个单独的问题,但简短的回答是它是可变的.

如果要存储特定于用户的值,请查看会话状态.


Pro*_*one 5

除了鲍勃的回答,当然还有这个例外:

public static object Item {
    get { return HttpContext.Current.Session["some_key"]; }
}
Run Code Online (Sandbox Code Playgroud)