Service.GetSession()
和Service.SessionAs<T>()
之间是否存在重大差异以及他们如何解决会话?
我正在维护这个代码,它在某些请求中使用了一个,而在其他请求中使用了后者。是否可以互换或是否有其他考虑因素?
答案 0 :(得分:3)
正是这种差异
public virtual IAuthSession GetSession(bool reload = false)
{
var req = this.Request;
if (req.GetSessionId() == null)
req.Response.CreateSessionIds(req);
return req.GetSession(reload);
}
protected virtual TUserSession SessionAs<TUserSession>()
{
var ret = TryResolve<TUserSession>();
return !Equals(ret, default(TUserSession))
? ret
: Cache.SessionAs<TUserSession>(Request, Response);
}
我从未使用过任何一种,但似乎它们不应随意互换。您可以浏览此源代码here并找出它们的显着差异。由于缺乏文件,乍一看很难说清楚