用属性封装 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
的存取,也可达到上述的优点。
及 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
的存取,也可达到上述的优点。
相关文章推荐
- 用属性封装 Session 及 VIewState 的存取
- 比较application,session,cookies,viewstate四个对象区别?(从原理,使用范围, 存取方法等方面来讨论)
- 把页面变量封装在ViewState中的属性写法
- Application, Session, Cookie, Viewstate, Cache对象用法和区别(转)
- ASP.NET:Application,Session,Cookie,ViewState和Cache之间的区别
- TextBox的 TextChanged事件#1 -- 动态给予默认值,会触发TextChanged事件吗? / #2 -- EnableViewState属性是做什么用?
- Application,Session,Cookie,ViewState,Cache的区别
- ViewState与Session的区别(转)
- Session, ViewState 以及用法
- Session ,ViewState,以及接收其它网页传过来的值的使用.
- viewstate.static,session都可以用来保存变量或对象,页面刷新也不会自动消失
- session 和 viewstate 的比较
- Application、Session、Cookie、ViewState、Cache、Hidden的区别
- ASP.Net中的enableViewStateMac属性
- Application Session Cookie ViewState Cache(转)
- 在用户控件属性中使用ViewState
- ASP.Net中控件的EnableViewState属性
- Asp.net中Application Session Cookie ViewState Cache Hidden 区别
- view组件的duplicateParentState属性
- ViewState,Session