当用户请求登录页面时,将调用LoginController并且ninject将向控制器注入适当的存储库(假设为IAccountRepository)。如果登录成功,我将从存储库中获取用户信息,然后存储在Session中(比如AccInfo)。但是如果用户有一个有效的授权cookie回到我的站点,AccInfo在Session中不存在,但我想在另一个控制器中使用它(它首先没有注入IAccountRepository)。 我现在应该怎么做?我不想调用具体对象(比如一个AccountRepository实例)从db获取信息,我仍然想在这种情况下使用DI。
答案 0 :(得分:0)
也许你不应该在会话中存储AccInfo?只需存储userId或其他,然后始终注入您的存储库,并使用userId检索必要的东西。
如果要在存储库中使用缓存来最小化数据库访问。