访问会话值的成本

时间:2015-05-20 19:27:10

标签: asp.net .net

访问会话值是否需要付费?除了访问(我推测)词典的成本。也许会话每次被访问时都会反序列化。

例如,我发现有些人将会话值放在变量中。

_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()

我想知道两者之间的速度是否存在显着差异,或者是否建议从另一方推迟。

1 个答案:

答案 0 :(得分:0)

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

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

您可以快速了解会话状态here.

有关对信息进行逐行扫描和反序列化的详细信息,请检查this旧帖子。