ASP.NET应用程序中类中的VB.NET共享属性

ASP.NET应用程序中类中的VB.NET共享属性,asp.net,vb.net,class,shared-memory,Asp.net,Vb.net,Class,Shared Memory,这可能是一个愚蠢的问题,但如果我在ASP.NET/VB.NET应用程序中创建一个具有共享属性(一个仅可通过类名访问,不需要类实例化)和一个用户的类,当前登录将设置该属性-此共享值是否可供同时使用它的同一ASP.NET应用程序的其他用户访问,或者该值是否仅限于设置它的用户?愚蠢的问题,因为OOP没有用户概念:) 愚蠢的回答:同一ASP.NET应用程序的另一个用户可以同时使用共享值进行访问。所有人。该类由服务器进程加载一次,并保留在内存中以服务所有请求。因此,共享属性将为所有页面请求显示相同的值 如

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

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


愚蠢的回答:同一ASP.NET应用程序的另一个用户可以同时使用共享值进行访问。

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


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

感谢您确认我最坏的怀疑。这将有助于避免很多潜在的痛苦。你很有可能创建一个web服务器,每个不同的用户都有自己的应用程序域,所以这并不像你想象的那么愚蠢。除非我误解了这个问题,否则答案是:不,不要分享!嗯,至少人们应该对“是”的答案持保留态度,这需要更多的研究。“这不是它的工作方式。ASP.Net页面类实例几乎总是在不到一秒钟的时间内创建和销毁…”“ASP.Net运行时会为每个请求创建一个新的类实例。”参考: