2015-05-20 19 views
1

访问会话值是否有成本?除了访问(我推测)字典的成本。每次访问会话时可能会反序列化。访问会话值的成本

例如,我看到一些人将会话值放入一个变量中。

_sessionValue = CType(Session(SESSION_NAME), SomeClass) 

_sessionValue.SomeFunction1() 
_sessionValue.SomeFunction2() 

和别人创建属性

Public ReadOnly Property SessionValue As SomeClass 
    Get 
     Return CType(Session(SESSION_NAME), SomeClass) 
    End Get 
End Property 

SessionValue.SomeFunction1() 
SessionValue.SomeFunction2() 

我不知道是否有速度上的两个或如果从其他建议之间的差异显著。

+0

可能重复[是一个变量存储在会话反序列化整个页面生命周期一次或多次?](http://stackoverflow.com/questions/2150153/is-a-variable-stored-in-session-deserialized -once - 或多倍通量-a)的 –

回答

0

这里有一些东西。首先,这些代码示例只是将会话对象转换为类型。无论如何,这将在使用该对象的代码中完成。好处是有一个页面属性,您可以在任何方法中轻松使用。会话对象不会被读取和转换为类型,除非您调用属性。

如果您想使用私人或公共会员,您应自行决定。财产和会员之间没有任何区别。

您可以使会话状态快速here.

有关seralizing和deserializng会话细节读了对象检查this较早的帖子。