在ASP.NET中是否存在命名会话变量的约定?
我想到的选项:
Session["myValue"] = "value";
Session["MyValue"] = "value";
Session["my_value"] = "value";
Session["MY_VALUE"] = "value";
答案 0 :(得分:3)
IMO,重要的是应用DRY原则:
public class SessionVariables
{
public const string MyStoredSessionVariable = "MyStoredSessionVariable";
...
}
然后:
Session[SessionVariables.MyStoredSessionVariable] = ...
我认为你使用的字符串文字并不重要,只要它足够独特并且你以一致的方式完成,就像其他人提到的那样。
答案 1 :(得分:3)
没有任何正式的命名约定,但您可以考虑使用枚举,以便您没有任何字符串文字,1)使您更容易记住您的密钥的名称和2)使其无法拥有运行时错误,因为您的密钥名称不能输入错误。
e.g。
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;
}
}
}
答案 2 :(得分:2)
没有什么比约定更好了。它是一个由开发人员共享或由项目团队框架的约定,以便每个人都能轻松实现。
就像你提到的那样,我的组织使用带有下划线的大写字母。
答案 3 :(得分:1)
答案 4 :(得分:0)
通常这些约定由团队决定,以保持代码的一致性,但如果假设您正在扩展或自定义现有代码,那么最好遵循现有的编写代码。 另一件事是,如果你想决定遵循哪个约定,那么通常遵循Constants资本命名约定,否则遵循Camel符号以提高可读性。