基本上我有一个持久化多个页面的对象,因此我使用Session来保存和检索对象。我正在使用GUID作为Session密钥。我使用静态构造函数来创建GUID。
以下是该对象的示例:
class Customer
{
private static readonly string _sessionKey;
public static string SessionKey
{
get { return _sessionKey; }
}
static Customer()
{
_sessionKey = Guid.NewGuid().ToString();
}
}
然后我在我的代码中使用它:
Session.Add(Customer.SessionKey, new Customer());
...
Customer C = Session[Customer.SessionKey] as Customer;
我个人更喜欢这种方法,而不是会话密钥的const string
或string
字面值。只是想知道这是否有任何缺点或你使用了什么其他方法?
答案 0 :(得分:4)
为什么这样?你应该只定义常量并完成它。如果您使用Session
迭代或使用调试器,则它们不具有描述性。
答案 1 :(得分:0)
如果您在会话中有Customer
个对象 - 以常量名称保存。否则,请考虑以常量名称保存Customer
个对象的集合。
注意:如果您计划使用其他状态提供程序(SQL /状态服务)而不是默认的内存提供程序,请确保您的Customer
对象是serializale并且在请求之间有意义。