0

交換できるセッション/一時データプロバイダーを構築しようとしています。デフォルトのプロバイダーはasp.netmvc上で機能し、ビジネスオブジェクトクラスから.netmvcTempDataにアクセスする必要がありました。tempdataがコントローラーコンテキストを介して利用できることは知っていますが、それがHttpContextなどを介して公開されているかどうかを確認できないようです。asp.netベースのセッションプロバイダーのみがこれを必要とし、他のプロバイダー(NoSQL DBなどを使用)はコントローラーコンテキストを気にしないため、コントローラーコンテキストを引数として渡したくありません。

さらに明確にするために、ここにもう少しコードを追加します。私のISessionインターフェースは次のようになります。このコードが本番環境に移行すると、セッション/一時データはNoSqlデータベースを使用して機能することが期待されます。しかし、開発テストなどのためにasp.netmvcセッション/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);

}
4

1 に答える 1

0

何をしようとしているのか正確にはわかりませんが、TempDataDictionaryが実装されIDictionary<string, object>ているため、ビジネスオブジェクトにパラメーターとして取得させるか、コンストラクターインジェクションを使用させることができます。次に、コントローラーにTempDataをパラメーターとしてビジネスオブジェクトに渡させることができます。ディクショナリインターフェイスを使用することにより、ビジネスオブジェクトはASP.NETMVCに依存しなくなります。

于 2011-03-05T15:11:57.567 に答える