【发布时间】:2011-01-13 08:43:24
【问题描述】:
我喜欢 HTTPContext.Current 的工作方式。有什么方法可以实现与 HTTPContextBase 无关的类似对象?基本上,我想创建一个 UserContext。然后在 DAL 中,我可以简单地查询这个 UserContext 以获取特定于用户的信息。该对象必须是线程安全的,并且可以在 ASP.NET 环境(因此 THREAD STATIC 属性不起作用)和控制台/库环境中工作。
【问题讨论】:
-
为什么
[ThreadStatic]不起作用? -
ThreadStatic 不起作用,因为如果它在 ASP.NET 环境中,可能会发生线程切换。
-
在 ASP.NET 中,您当前所在的工作线程也可用于其他请求。 “在 ASP.NET 中,您的代码在默认 ASP.NET 工作线程池中的 25 个左右线程的 WorkerThread 上运行,并且您认为“对您的线程个人私有”的变量是个人私有的……对您和此工作线程处理过的所有其他请求。”
-
您可以在请求完成后清除该字段。
-
piers7.blogspot.com/2005/11/… 应该弄清楚为什么在 ASP.NET 中使用 [ThreadStatic] 不好
标签: c# .net asp.net architecture