Я использую пример, в котором я могу подделать сессию.Это для использования в unittest контроллера mvc.
В тесте я создаю контроллер, а затем делаю это:
FakeHttpContext httpctx = new FakeHttpContext(null,null,null,null,mSessionItems );
ControllerContext ctx2 = new ControllerContext(httpctx,new RouteData(), target);
, где mSessionItems
- мой сеанс, а target
мой экземпляр контроллера
и действительно, когда я нахожусь в контроллере, читающем this.ControllerContext.HttpContext.Session
, у меня есть сеанс, отлично!
, но .... я также читаю сеансвне контроллера, и там я использую HttpContext.Current.Session
, и это ноль (или на самом деле, HttpContext.Current
- ноль).
Итак, я удивился, в чем разница между этими двумя?