Обычно у меня просто есть статический класс, который упаковывает мои данные сеанса и делает его тип безопасным, например:
public static class MySessionHelper
{
public static string CustomItem1
{
get { return HttpContext.Current.Session["CustomItem1"] as string; }
set { HttpContext.Current.Session["CustomItem1"] = value; }
}
public static int CustomItem2
{
get { return (int)(HttpContext.Current.Session["CustomItem2"]); }
set { HttpContext.Current.Session["CustomItem2"] = value; }
}
// etc...
}
Тогда, когда мне нужно получить или установить предмет, вы просто сделаете следующее:
// Set
MySessionHelper.CustomItem1 = "Hello";
// Get
string test = MySessionHelper.CustomItem1;
Это то, что вы искали?
РЕДАКТИРОВАТЬ: В соответствии с моим комментарием на ваш вопрос, вы не должны получать доступ к сессии непосредственно со страниц в вашем приложении. Класс-обёртка сделает не только безопасный тип доступа, но и даст вам центральную точку для всех изменений. С вашим приложением, использующим оболочку, вы можете в любой момент легко заменить Session на хранилище данных по вашему выбору, не внося изменений в каждую страницу, которая использует сеанс.
Еще одна вещь, которая мне нравится в использовании класса-оболочки, это то, что он документирует все данные, которые хранятся в сеансе. Следующий программист может увидеть все, что хранится в сеансе, просто взглянув на класс-оболочку, чтобы у вас было меньше шансов сохранить одни и те же данные несколько раз или повторно загрузить данные, которые уже кэшированы в сеансе.