您的位置:首页 > 其它

用属性封装 Session 及 VIewState 的存取

2008-05-02 19:19 218 查看
在 ASP.NET 程序中常会 Session
及 VIewState
储存状态,一般的写法都是直接存取 Session
或 ViewState,例如将变量值储存于 Session
的写法如下。

'将变量值储存于 Session 中。

Dim oValue As New NameValueCollection

Session(KEY_SESSION) = oValue

'由 Session 中转型取得变量值。

Dim oValue As NameValueCollection

oValue = CType(Session(KEY_SESSION), NameValueCollection)

不过上述的写法有一些缺点:

1.每次存取 Session
时都要做型别转换的动作,执行效能不佳。

2.容易因为 Session
键值错误,而造成不可预期的问题。

3.程序维护上较困难。例如改变键值或 Session
改储存于 ViewState
中。

所以比较好的作法,就是使用属性来封装 Session
或 VIewState
的存取。以下的范例中,使用 SessionCollection
属性来封装 Session
的存取,ViewStateCollection
属性来封装 ViewState
的存取。

1 Private KEY_SESSION = "_SeesionCollection"

2 Private KEY_VIEWSTATE = "_ViewStateCollection"

3 Private FSessionCollection As NameValueCollection

4 Private FViewStateCollection As NameValueCollection

5

6

当要使用封装 Session 及 ViewState
时,就如同存取属性一样。

Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim iCount As Integer

iCount = Me.SeesionCollection.Count

Me.SeesionCollection.Add(iCount.ToString, iCount.ToString)

iCount = Me.ViewStateCollection.Count

Me.ViewStateCollection.Add(iCount.ToString, iCount.ToString)

End Sub

利用属性封装 Session 或 ViewState
的存取时,有下列优点:

1.撰写程序代码时不用去理会 Seesion
或 ViewState,直接使用属性即可,简化程序代码及易读性。

2.只做一次的型别转换,执行效能较佳。

3.程序维护性佳。当 Session
或 ViewState
的键值变更或储存目的改变时(如 Session
改为 ViewState),只需修改该属性即可。

以上的做法虽然以 Session 及 ViewState
做示范,当然也可以使用相同方式来封装 Application
及 Cache
的存取,也可达到上述的优点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: