c# - 从 ServiceStackController 继承的 MVC Controller 中以下三行之间的确切区别是什么

标签 c# servicestack

在继承ServiceStackController的MVC Controller 中,以下三行的具体区别是什么?

(我找不到任何文档中解释的差异)

//A - (default: reload = true)
var session = GetSession(); 

//B
var session = GetSession(false);

//C
var session = SessionAs<IAuthSession>();

最佳答案

GetSession更好地命名为GetOrCreateSession因为它将获取类型化 session 或创建一个新 session (如果不存在)。它还将 Session 的实例存储在 HTTP 请求上下文中,如果 reload:false将在存在时返回本地实例:

IAuthSession session = GetSession(reload:false);
IAuthSession session = GetSession(reload:true);

如果reload:true它将始终从底层 ICacheClient 检索 session .

SessionAs<T>总是从 ICacheClient 获取 session 如果它不存在则返回一个空实例。它还会返回自定义 AuthUserSession 的键入版本:

CustomUserSession session = SessionAs<CustomUserSession>();

关于c# - 从 ServiceStackController 继承的 MVC Controller 中以下三行之间的确切区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673012/

相关文章:

c# - 如何从强命名主机使用 ServiceStack?

c# - DbContext "using"在一行中

c# - 从组合框中获取 .value 属性

ServiceStack:错误未序列化到响应状态

servicestack - 将服务堆栈集成到自定义服务器中

redis - 使用 ServiceStack 将 System.Data.Dataset 存储和检索到 Redis

c# - 如何使用表单提交的绑定(bind)值为 InputText 设置占位符?

c# - 异步实现文件上传控制时,UpdateProgress 和触发器部分在更新面板中不起作用

c# - 单元测试和 Entity Framework

c# - 跨域调用ServiceStack服务出现Cors问题