使用DI获取适当的存储库以向会话提供数据

时间:2013-03-21 17:27:05

标签: asp.net-mvc dependency-injection

当用户请求登录页面时,将调用LoginController并且ninject将向控制器注入适当的存储库(假设为IAccountRepository)。如果登录成功,我将从存储库中获取用户信息,然后存储在Session中(比如AccInfo)。但是如果用户有一个有效的授权cookie回到我的站点,AccInfo在Session中不存在,但我想在另一个控制器中使用它(它首先没有注入IAccountRepository)。 我现在应该怎么做?我不想调用具体对象(比如一个AccountRepository实例)从db获取信息,我仍然想在这种情况下使用DI。

1 个答案:

答案 0 :(得分:0)

也许你不应该在会话中存储AccInfo?只需存储userId或其他,然后始终注入您的存储库,并使用userId检索必要的东西。

如果要在存储库中使用缓存来最小化数据库访问。