В этой публикации автор рекомендует использовать обертку для сессии, чтобы упростить тестирование и разделение кода контроллера. Я хотел бы получить идеи о том, как реализовать хорошую оболочку для этой цели.
Я вижу, что в CodeProject есть один пример, но он выглядит намного больше, чем мне нужно.
РЕДАКТИРОВАТЬ 1:
Ok. Благодаря Джошуа я реализовал и простой класс сессионного помощника. Я публикую здесь урок, чтобы узнать ваше мнение и посмотреть, добавите ли вы что-нибудь.
public interface ISessionHelper
{
T Get<T>(string key);
}
public class HttpContextSessionHelper : ISessionHelper
{
private readonly HttpContext _context;
public HttpContextSessionHelper(HttpContext context)
{
_context = context;
}
public T Get<T>(string key)
{
object value = _context.Session[key];
return value == null ? default(T) : (T)value;
}
}
В контроллере у меня что-то вроде этого:
private readonly ISessionHelper _sessionHelper;
public HomeController(ISessionHelper session)
{
_sessionHelper = session;
}
public HomeController()
{
_sessionHelper = new HttpContextSessionHelper(System.Web.HttpContext.Current);
}