0

在 ASP.NET 中命名会话变量是否有任何约定?

我想到的选项:

Session["myValue"] = "value";
Session["MyValue"] = "value";
Session["my_value"] = "value";
Session["MY_VALUE"] = "value";
4

5 回答 5

3

IMO,应用 DRY 原则很重要:

public class SessionVariables
{
    public const string MyStoredSessionVariable = "MyStoredSessionVariable";
    ...
}

进而:

Session[SessionVariables.MyStoredSessionVariable] = ...

我认为您使用哪种字符串文字并不重要,只要它足够独特并且您以一致的方式进行操作,就像其他人提到的那样。

于 2012-05-08T12:11:18.367 回答
3

没有任何正式的命名约定,但您可以考虑使用枚举,这样您就没有任何字符串文字,这 1) 可以更容易地记住键的名称,并且 2) 不会出现运行时错误,因为您的密钥名称中不能有错字。

例如

public enum SessionKey
{
   FirstName,
   LastName,
   BusinessId
}

然后做:

    Session[SessionKeys.FirstName.ToString()] = "Rob";

或者自己创建一个 SessionHelper 类,使整个过程更加整洁:

public static class SessionHelper
    {
        public static void SetSessionKey(SessionKey sessionKey, object value)
        {
            HttpContext.Current.Session.Add(sessionKey.ToString(), value.ToString());
        }

        public static String GetSessionKey(SessionKey sessionKey)
        {
            return HttpContext.Current.Session[sessionKey.ToString()] as string;
        }
     }
}
于 2012-05-08T12:12:42.873 回答
2

没有什么比得上公约了。它是由开发人员共享或由项目团队制定的约定,以便每个人都可以轻松使用。
就像您提到的那样,我的组织使用带有下划线的大写字母。

于 2012-05-08T11:58:31.230 回答
0

CamelCase 是一个不错的选择。

会话["我的价值"] = "价值";

骆驼案例参考:

http://en.wikipedia.org/wiki/CamelCase

于 2012-05-08T11:58:21.413 回答
0

通常这些约定是由团队决定的,以保持整个代码的一致性,但如果假设您正在扩展或自定义现有代码,那么最好遵循现有的书面代码正在遵循。另一件事是,如果您想决定遵循哪种约定,通常会遵循常量大写命名约定,否则遵循骆驼表示法以提高可读性。

于 2012-05-08T12:03:15.090 回答