c# - 服务堆栈: Difference between GetSession and SessionAs<t>

标签 c# servicestack

Service.GetSession() 之间是否存在显着差异和Service.SessionAs<T>()他们如何解决 session ?

我正在维护这段代码,该代码在某些请求中使用其中一个,而在其他请求中使用后者。是否可以互换或者有其他考虑因素?

最佳答案

正是这个区别

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并找出它们有多么显着的差异。由于缺乏文档,乍一看很难判断

关于c# - 服务堆栈: Difference between GetSession and SessionAs<t>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20633428/

相关文章:

c# - 声明带有键、值的哈希表

c# - 如何通过组合包含属性?

c# - 在禁用状态下为 DatePicker 设置文本颜色?

razor - ServiceStack Razor ContentPage 在调试中工作但未部署

ServiceStack.Text 序列化字典

asp.net - ServiceStack Redis 序列化错误

c# - MVC 5 使用 actionlink 将模型从 View 传递到 Controller

c# - Swagger 的服务堆栈不起作用

http-headers - 忽略 CORS 设置,未写入 Access-Control-Allow-* header

C#如何杀死父线程