3

ASP.NET Web APIを公開しようとしてIQueryable<>いますが、ASP.NET Web API に組み込まれている OData クエリ システムが機能するように、要求が完了するまでデータ ソースを開いたままにしておく必要があることがわかりました。

OK、それは完全に合理的に聞こえます。しかし、データ ソースはどこに廃棄すればよいのでしょうか。これには明らかな場所がありません。アプリケーションでリクエストの状態を管理する必要がありますか? これを行う標準的な方法は何ですか?

コントローラーのDispose()メソッドは適切な場所ですか?つまり、1 つのコントローラー インスタンスが 1 つの要求のみを処理するという保証はありますか、それとも実装の詳細だけですか?

ASP.NET MVC 4 RC の ASP.NET Web API を使用しています。

4

1 に答える 1

6

RegisterForDisposeで呼び出された拡張機能を使用してHttpRequestMessage、リクエストが完了したときに処分したいリソースを登録できます。

ところで、IQueryableWeb API の次のリリースでのサポートについては、次のリンクを参照してください。 http://aspnetwebstack.codeplex.com/discussions/359229

[編集済み] Dispose()Controller のメソッドで処理を行うことも解決策になります。Web APIApiControllerベースのコントローラーでは、常にインスタンスごとです (1 つの要求ごとに 1 つのコントローラー インスタンス)。

于 2012-07-07T00:33:37.483 に答える