我正在处理一个由10-15名ASP.NET(4.0)开发人员组成的团队,如何阻止他们在代码中使用相同的会话名称? 要么 换句话说,开发人员如何知道会话名称已经存在,以便他应该使用其他名称。 在我的情况下,每个开发人员都在使用Session [“ID”],我想,如果已经使用了Session [“ID”],那么开发人员可能会获得某种信息,这样他就不应该使用相同的会话名称。
可能这很容易或偏离轨道......但我正面临着这个问题。 感谢
答案 0 :(得分:2)
我假设您正在讨论确保开发人员不会对Session值使用相同的密钥。
建立命名约定可能是解决问题的最简单方法。
我还发现在辅助类中包装与Session相关的值有助于避免这个问题,并且还可以使这些数据的消费更清晰(并且更抽象)。
public static class MyClass
{
public static UserId
{
get{ return (int)Session["UserId"]; }
set{ Session["UserId"] = value; }
}
}
只要您使用适当的源代码控制,任何冲突都会很快显现出来。
如果你想让键名真的显而易见,那么你可以将它们作为类中的单独字段进行管理,所有字段都在同一个地方组合在一起。
public static class MyClass
{
private static readonly string _userIdKey = "UserId";
private static readonly string _anotherKey = "AnotherKey";
public static UserId
{
get{ return (int)Session[_userIdKey ]; }
set{ Session[_userIdKey ] = value; }
}
}
最后,您可以针对这些帮助程序类运行单元测试,以确保不会覆盖密钥,尽管这可能是过度的。