1

私はasp.net mvcが初めてです。リクエストごとに 1 つのインスタンスしか必要としないアプリ クラスがあります。IDispose があるため、適切に破棄する必要があり、すべてのページ ヒットと呼びます。

私が見つけている問題は、ビューでメソッドを呼び出す必要がある場合があることです。コントローラーでクラスにアクセスし、表示して、各リクエストの最後に適切に破棄する方法がわかりません。すべてのコントローラーをベースとして独自のコントローラークラスに置き換える必要があると感じています。しかし、これは最初にビューを実行し、ビューから MyController のメンバーにアクセスできる場合にのみ機能します (実際にはビューバッグに詰め込むことができます)。

これを行う適切な方法は何ですか?

4

2 に答える 2

0

依存性注入を実装した後、コントローラーで以下のように依存性またはオブジェクトを破棄できます。

protected override void Dispose(bool disposing)

    {
    _requestRepository.Dispose();
    base.Disposing(disposing);
    }
于 2013-01-21T08:52:00.840 に答える
0

解決策の 1 つは、依存性注入フレームワーク (Ninject など) を接続して、オブジェクトの有効期間を制御できるようにすることです。Ninject には InRequestScope ライフタイム ポリシーがあり、リクエストごとに 1 つのオブジェクトが作成されるため、オブジェクトを取得するための後続の呼び出しは、同じリクエスト内にある場合は同じオブジェクトを返します。

于 2013-01-21T01:31:21.420 に答える