我正在尝试构建一个可以交换的会话/临时数据提供程序。默认提供程序将在 asp.net mvc 之上工作,它需要从业务对象类访问 .net mvc TempData。我知道临时数据可通过控制器上下文获得,但我似乎无法找到它是否通过 HttpContext 或其他方式公开。我真的不想将控制器上下文作为参数传递,因为这会稀释我的接口定义,因为只有基于 asp.net 的会话提供程序需要这个,其他(使用 NoSQL DB 等)不关心控制器上下文。
为了进一步澄清,在这里添加更多代码。我的 ISession 界面看起来像这样。当此代码投入生产时,预计会话/临时数据将使用 NoSql db 工作。但我也喜欢在 asp.net mvc session/tempdata 之上为我的开发测试等提供另一个实现。
公共接口 ISession
{
T GetTempData<T>(string key);
void PutTempData<T>(string key, T value);
T GetSessiondata<T>(string key);
void PutSessiondata<T>(string key, T value);
}