从ServiceStackController继承的MVC控制器中的以下三行之间的确切区别是什么?
(我找不到任何文档中解释的差异)
//A - (default: reload = true)
var session = GetSession();
//B
var session = GetSession(false);
//C
var session = SessionAs<IAuthSession>();
最佳答案
GetSession
更好地命名为GetOrCreateSession
,因为它将获得类型化会话或创建一个不存在的会话。它还将会话的实例存储在HTTP请求上下文中,如果reload:false
在存在时返回本地实例,则该实例:
IAuthSession session = GetSession(reload:false);
IAuthSession session = GetSession(reload:true);
如果为
reload:true
,它将始终从基础ICacheClient
检索会话。SessionAs<T>
始终从ICacheClient
获取会话,如果不存在,则返回一个空实例。它还返回您的自定义AuthUserSession
的键入版本:CustomUserSession session = SessionAs<CustomUserSession>();
关于c# - 从ServiceStackController继承的MVC Controller 中的以下三行之间的确切区别是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27673012/