asp.net – 为会话值的关键名称创建枚举是一个好主意吗?
发布时间:2020-12-15 18:58:52 所属栏目:asp.Net 来源:网络整理
导读:而不是做 session("myvar1") = something session("myvar2") = something session("myvar3") = something session("myvar4") = something 是在做 enum sessionVar myvar1 myvar2 myvar3 myvar4end enum session(sessionVar.myvar1.tostring) = something ses
而不是做
session("myvar1") = something session("myvar2") = something session("myvar3") = something session("myvar4") = something 是在做 enum sessionVar myvar1 myvar2 myvar3 myvar4 end enum session(sessionVar.myvar1.tostring) = something session(sessionVar.myvar2.tostring) = something session(sessionVar.myvar3.tostring) = something session(sessionVar.myvar4.tostring) = something 会更好? 解决方法
而不是使用会话密钥的常量,我使用我自己的类型安全的会话对象,看起来像这样(对不起,这是在C#,见下面的VB版本):
public class MySession { // Private constructor (use MySession.Current to access the current instance). private MySession() {} // Gets the current session. public static MySession Current { get { MySession session = HttpContext.Current.Session["__MySession__"] as MySession; if (session == null) { session = new MySession(); HttpContext.Current.Session["__MySession__"] = session; } return session; } } // My session data goes here: public string MyString { get; set; }; public bool MyFlag { get; set; }; public int MyNumber { get; set; }; } 每当我需要读/写会话时,我可以使用我的类型安全会话对象,如下所示: string s = MySession.Current.MyString; s = "new value"; MySession.Current.MyString = s; 这个解决方案有几个优点: >我有一个类型安全的会话(没有更多的类型转换) 更新: Public Class MySession ' Private constructor (use MySession.Current to access the current instance). Private Sub New() End Sub ' Gets the current session. Public Shared ReadOnly Property Current() As MySession Get Dim session As MySession = TryCast(HttpContext.Current.Session("__MySession__"),MySession) If session = Nothing Then session = New MySession() HttpContext.Current.Session("__MySession__") = session End If Return session End Get End Property ' My session data goes here: Public MyString As String Public MyFlag As Boolean Public MyNumber As Integer End Class (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 其中Simple Injector等效于StructureMap的O
- asp.net – @Model不支持在Razor视图VB?
- asp.net-mvc – 哪里可以将商业模式转换成模型?
- asp.net-mvc – 在ASP.NET MVC 4中的用户控制等效
- asp.net-mvc – 如何覆盖Orchard CMS中导航区域的渲染?
- asp.net – 替代SSRS前端
- asp.net – WebForms身份验证作为MVC过滤器
- asp.net-mvc – Asp.net MVC 3 RC – Razor ValidationMess
- 如何在asp.net网站上使用图片资源?
- asp.net-mvc – 在MVC项目中创建区域
推荐文章
站长推荐
热点阅读