在继承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/