c# - .NET 中的单例在所有 session 之间共享吗?

标签 c# .net asp.net singleton

我正在创建一个单例来保存从缓存的 xml 文件中提取数据的 linqtoumbraco 数据上下文。

我了解如何创建单例类并使用锁来防止新线程创建新实例。

我不了解多线程以及 .NET session 如何工作得很好,我想知道如果我如上所述创建单例,它是否会被所有访问我的网络应用程序的用户共享,同时应用程序池仍然存在?换句话说,单例不仅仅是一个用户 session 的单例,它是所有 session 的单例?

谢谢

最佳答案

是的,静态成员为整个 ASP.Net 应用程序共享

另一种方法是在 HttpContext.Current.Application 中创建和分配数据上下文,您可以在任何 session 中从任何地方获取它

但是仔细想想,难道所有客户端都只读取xml文件吗?如果一个客户在另一个客户写作的时候正在阅读怎么办?或者 datacontext 是否支持多线程读取? 在以静态方式使用该数据上下文之前,您应该回答所有这些问题

关于c# - .NET 中的单例在所有 session 之间共享吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231130/

相关文章:

c# - 将应用程序池凭据用于 WebClient 请求

c# - 为 Canvas 上重叠的矩形触发 MouseDown 事件

尽管用户选择,C# 打印对话框始终使用默认打印机

c# - 缺少 VS2017 中的一些 Web 开发实用程序

c# - .NET 中的反向排序字典

c# - 带有浏览器界面的长进程

c# - 是否可以使此方法通用

c# - 程序集引用之间的差异

c# - 有选择地使用默认的 JSON 转换器

ASP.net 安全问题 "Authorization"和 ".ASPXAUTH"cookies