В этом сообщении автор рекомендует реализовать оболочку для сеанса. для облегчения тестирования и разделения кода контроллера. Я хотел бы получить идеи о том, как реализовать для этой цели хорошую оболочку.
Я вижу, что в CodeProject есть один образец, но он выглядит намного лучше, чем то, что Я нуждаюсь.
РЕДАКТИРОВАТЬ 1:
В порядке. Благодаря Джошуа у меня есть реализация и простой вспомогательный класс сеанса. Я публикую здесь класс, чтобы узнать ваше мнение и посмотреть, добавите ли вы что-нибудь.
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);
}