開発者がすべてセッション値に同じキーを使用しないようにすることについて話していると思います。
この問題に対処する最も簡単な方法は、命名規則を確立することです。
また、セッション関連の値をヘルパー クラスにラップして、この問題を回避し、そのようなデータの消費をよりクリーンに (そしてより抽象化) することも役立つと思います。
例
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; }
}
}
最後に、これらのヘルパー クラスに対して単体テストを実行して、キーが上書きされていないことを確認できますが、これはおそらくやり過ぎです。