Csharp/C#教程:每个用户的Singleton-Pattern ASP.NET C#分享


每个用户的Singleton-Pattern ASP.NET C#

我正在使用asp.net c#构建一个Web应用程序,我有一个类,我想在多个页面中使用,每次实例化它。 我需要在其中加载数据,并且在用户会话期间永远不会丢失它们。 我想到了单例模式,但它共享了浏览器之间的类的实例。 我该如何解决这个问题?

单身人士不是答案。 查看Session State , ViewState和Cookies 。

UserData data = new UserData(somedata); Session["UserData"] = data; 

下一页

 UserData data = (UserData) Session["UserData"]; 

如果你有inproc会话状态,你可以使用这样的东西

 class Singleton { static object locker = new Object(); public static Singleton Instance { get { var inst = HttpContext.Current.Session["InstanceKey"] as Singleton; if (inst == null) { lock (locker) { inst = HttpContext.Current.Session["InstanceKey"] as Singleton; if (inst == null) { inst = new Singleton(); HttpContext.Current.Session["InstanceKey"] = inst; } } } return inst; } } } 

可以改进代码,以避免锁定所有用户。 不知道这样做是否是一个好主意,我建议你看看你是否可以用其他方式设计你的代码。

上述就是C#学习教程:每个用户的Singleton-Pattern ASP.NET C#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/989486.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐