如何解决ASP.Net-页面类内部的单例类
| 我将单例类实现为页面中包含的私有类。在单例中,我将一些数据存储在一个volatile变量中。问题在于成员变量在页面执行之间保留其值。我的假设是在每次页面执行期间第一次使用该类时都会重新初始化。 为什么它会表现这种方式,应该怎么做?解决方法
如果单例实例是静态定义的,则将其范围限定为应用程序变量。静态作用域就像全局变量。
, 您的课程很可能被标记为“静态”,因此您所看到的是这种情况的副作用。来自静态类和静态类成员:
静态构造函数仅被调用一次,并且静态类在程序所驻留的应用程序域的生存期内保留在内存中。
因此,您所看到的是预期的行为。您的单例的私有成员保持其先前状态,因为该类保留在应用程序的内存中。如果要保持单例模式不变,但是在调用其中一个方法时希望其处于“新”状态,则可以重置该方法访问的任何私有成员变量的值。
关于何时使用您可能感兴趣的静态类,这是一个很好的讨论:
何时在C#中使用静态类
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。