Стек служб: разница между GetSession и SessionAs<t>

Есть ли существенные различия между Service.GetSession() а также Service.SessionAs<T>() и как они решают сессии?

Я поддерживаю этот код, который использует один в некоторых запросах и использует позже в других. Есть ли взаимозаменяемые или есть какие-то другие соображения?

1 ответ

Именно эта разница

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);
}

Я никогда не использовал ни одного из них, но кажется, что они не должны меняться случайным образом. Вы можете просмотреть этот исходный код здесь и выяснить, насколько они существенно отличаются. Трудно сказать на первый взгляд из-за отсутствия документации

Другие вопросы по тегам