我有一个搜索功能,完成后将数据存储在通用列表 ( List<ViewModel>
) 中。到目前为止,我一直将 viewmodel 值分配给一个静态变量,以允许我在用户可能使用的任何页面请求上重新使用数据。
不过,经过今天的阅读,似乎静态变量值可以跨线程共享,这意味着如果我正在查看该站点,则包含我的搜索数据的静态变量可能会被其他用户修改。
在我的阅读过程中,我看到了诸如向[ThreadStatic]
变量添加属性之类的解决方案,尽管这不仅不起作用,而且被我的进一步阅读完全驳回为不正确的解决方案。
其他人谈到在 中存储变量HttpContext.Current.Items
,但我对此的理解是它只持续一个请求。
所以,我不确定这里的最佳解决方案 - 理想情况下,我宁愿不对我的应用程序进行太多根本性的更改,但总之我希望能够在许多请求中共享复杂的对象?这样做的最佳方法是什么?
非常感谢