从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/

10-13 06:54