【问题标题】:VB.NET Shared properties in Classes in ASP.NET applicationVB.NET ASP.NET 应用程序中的类中的共享属性
【发布时间】:2013-06-21 00:30:30
【问题描述】:

这可能是一个愚蠢的问题,但如果我在 ASP.NET/VB.NET 应用程序中创建一个具有共享属性的类(一个仅可通过类名访问且不需要类实例化的类)和一个当前登录的用户,将设置该属性 - 同一 ASP.NET 应用程序的其他用户是否可以同时使用该共享值,或者该值是否仅限于设置它的用户?

【问题讨论】:

  • 除非我误解了这个问题,否则答案是:不,不共享! Eesh,至少人们应该在这里对“是”的答案持保留态度,这需要更多的研究。 “这不是它的工作原理。ASP.Net 页面类实例几乎总是在一秒钟内再次创建和销毁......” “ASP.Net 运行时为每个请求创建一个新的类实例。”参考:Accessing public class variables in asp.net without session

标签: asp.net vb.net class shared-memory


【解决方案1】:

每个人。该类由服务器进程加载一次,并保留在内存中以服务所有请求。因此 shared 属性将为所有页面请求显示相同的值。

如果网站出现此问题,创建者使用共享数据库对象,用户最终会得到彼此的搜索结果。

【讨论】:

  • 感谢您证实了我最严重的怀疑。将有助于避免许多潜在的颈部疼痛
【解决方案2】:

愚蠢的问题,因为 OOP 没有用户概念 :)

愚蠢的回答:共享值将被同一 ASP.NET 应用程序的另一个用户同时使用它。

【讨论】:

  • 您很有可能创建一个 Web 服务器,其中每个不同的用户都有自己的应用程序域,所以这不像您想的那样愚蠢。只有当你知道它像这样工作时,这个问题才是愚蠢的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
相关资源
最近更新 更多