由于ASP.Net中的线程敏捷性,ThreadStatic
不是在web应用程序中用于将静态属性访问从一个请求隔离到下一个请求的合适机制。
为了避免大量调用HttpContext.Current.Items
和相关的null检查等等,.Net框架是否提供了任何技巧,让我可以创建一个类似于ThreadStatic
的属性,但如果当前代码在ASP.Net请求上下文中执行,则使用HttpContext.Current.Items
?
注意:我知道ThreadStaticAttribute是一种特殊情况,内部没有函数代码,在其任何魔力发挥作用之前都会由JIT编译器进行检查
n2cms项目构建了一个AdaptiveContext类,你可能会看看。我知道在log4net中有人说要做类似的事情,但我不确定是否完成了。
不过,据我所知,框架中没有任何内容。