0

ユーザーがログインページを要求すると、LoginControllerが呼び出され、ninjectが適切なリポジトリをコントローラーに挿入します(たとえば、IAccountRepository)。ログインが成功すると、リポジトリからユーザー情報を取得し、Sessionに保存します(AccInfoとしましょう)。しかし、ユーザーが有効な認証Cookieを持っている場合、AccInfoはSessionに存在しませんが、別のコントローラー(IAccountRepositoryが最初に挿入されていない)で使用したいと思います。私は今どうすればいい?dbから情報を取得するために具体的なオブジェクト(たとえば、AccountRepositoryインスタンス)を呼び出したくありません。この状況でもDIを使用したいと思います。

4

1 に答える 1

0

たぶん、あなたはセッションにAccInfoを保存するべきではありませんか?userIdなどを保存し、常にリポジトリを挿入し、userIdを使用して必要なものを取得するだけです。

dbアクセスを最小限に抑えたい場合は、リポジトリのキャッシュを使用してください。

于 2013-03-21T19:49:01.070 に答える