在Session(.NET)</string,>中存储Dictionary <string,string =“”>

时间:2009-07-22 14:46:01

标签: c# .net session

来自经典ASP背景我对将对象放入Session非常谨慎。

在.NET中将Dictionary类型的对象存储到Session中是不是一个坏主意?

4 个答案:

答案 0 :(得分:3)

好吧,你不会遇到一些ASP问题。 .net不是STA COM,因此您使用ASP的线程关联性问题不会对您造成伤害(除非您尝试在会话中或字典中存储STA COM对象)。

但是请注意并发访问。如果多个线程可以访问字典(对异步页面代码,或者可能是AJAX调用),那么您将需要对字典应用适当的锁定。

答案 1 :(得分:1)

嗯,这取决于你想要实现的目标,对于简单的事情,例如在页面回发之间保持状态,我建议你使用ViewState

答案 2 :(得分:0)

您可以将任何内容放入会话中......您只需确保不会将太多数据放入Session,因为这会占用服务器资源。这是在首次测试您的站点时不可见的,只有当您部署它并且许多用户开始使用它时,因为每个用户在服务器上都有自己的Session对象。

答案 3 :(得分:0)

大局问题与传统ASP并没有什么不同(尽管我承认我没有考虑the differences that JMarsch raised)。答案取决于许多因素:

  • 您期望的并发会话数(以及您打算支持的数量)
  • 词典的大小
  • 您的服务器的内存特征
  • 您的服务器需要做的其他事情