별도의 도우미 클래스에서 컨트롤러 외부의 HttpContext 세션에 액세스하는 것이 좋습니까? 별도의 도우미 클래스에서 컨트롤러 외부의 HttpContext 세션에 액세스하는 모범 사례
====================
컨트롤러는 헬퍼 클래스에 세션 및 전송에서 데이터를 가져 오는 모든 책임을 져야예
HomeController : BaseController
{
var value1 = Httpcontext.Session["key1"];
var value2 = Httpcontext.Session["key2"];
var val...
CallAMethod(value1,value2,val...);
}
아니면이 HttpContextBase 조롱하고 다음과 같이 사용한다? ISessionWrapper의
HomeController : BaseController
{
//Use Dependency Injection pattern
CallAMethod(base.SessionWrapper);
}
구현
public interface ISessionWrapper
{
T GetFromSession<T>(string key);
SetInSession(string key, object value);
}
public class HttpContextSessionWrapper : ISessionWrapper
{
private T GetFromSession<T>(string key)
{
return (T) HttpContext.Session[key];
}
private void SetInSession(string key, object value)
{
HttpContext.Session[key] = value;
}
}
public class BaseController : Controller
{
public ISessionWrapper SessionWrapper { get; set; }
public BaseController()
{
SessionWrapper = new HttpContextSessionWrapper();
}
}
답장을 보내 주셔서 감사합니다. 다른 질문은 컨트롤러가 데이터를 세션에서 가져 와서 도우미 클래스로 전송하는 모든 책임을 져야합니까? –
게시 한 방식에 따라 HttpContext에 대한 액세스를 처리하는 가장 좋은 방법은 무엇인지 묻는 것 같았습니다. –