如果我在App_Code文件夹中定义了“共享”对象;是我的网站的所有用户/访问者共享的对象?或者它是按用户分享的?
我不知道这是否有意义;但我有一个我之前写过的谜题/解算器,我试图将其整合到一个简单的ASP.Net网站中。它可能编写得很糟糕,但我使用了一个共享布尔值来确定是否找到了解决方案。代码工作,现在作为一个ASP.NET站点,但如果我的站点的两个访问者同时验证他们的谜题,他们是否都将访问相同的布尔值?
答案 0 :(得分:3)
如果你的变量是静态的,那么所有用户都将访问同一个变量,对于该变量的任何更改都会影响所有用户,仅限于web应用程序,逻辑是当你将变量设为静态然后分配内存位置时在服务器中,当分配此位置时,所有用户只共享该位置,因为它是静态的。
答案 1 :(得分:1)
静态变量在应用程序的所有用户之间共享。我在我的一个项目中对此进行了测试。我100%确定您的布尔变量值将在所有用户之间共享
答案 2 :(得分:1)
静态成员在WebApplication的所有用户之间共享。
您可能需要阅读以下文章。它包含有关应用程序状态变量和静态成员的一些有用信息:
Application Instances, Application Events, and Application State in ASP.NET
答案 3 :(得分:0)
除非我弄错了,否则IIS可能会将您的应用程序克隆到多个AppDomain中。虽然您的静态变量将在同一AppDomain上的所有用户(或线程)之间共享,但如果它们位于不同的AppDomain上,则不会共享它。