を受け取るサードパーティのライブラリを呼び出していますSystem.Web.HttpResponse
。があるように見えますがHttpResponseBase
、HttpResponse
Web フォームとは異なります。
を取得する方法はありHttpResponse
ますか? を使用しMVC 3
ます。
[編集] :コントローラーメソッドでこれを実行しようとしています。ケーシングも修正。
を受け取るサードパーティのライブラリを呼び出していますSystem.Web.HttpResponse
。があるように見えますがHttpResponseBase
、HttpResponse
Web フォームとは異なります。
を取得する方法はありHttpResponse
ますか? を使用しMVC 3
ます。
[編集] :コントローラーメソッドでこれを実行しようとしています。ケーシングも修正。
モックできない型を取るシステムと対話する必要がある場合は、静的プロパティSystem.Web.HttpContext.Currentを介して現在の HttpContext にアクセスできます。HttpResponse は、Response プロパティを介してぶら下がっています。
いいえ、しかしあなたHttpResponseBase
はおそらくHttpResponseWrapper
それの中に含まれてHttpResponse
いるです。からすべてのHttpResponse
メソッドにアクセスできますHttpResponseBase
。
へのアクセスが必要な場合は、ASP.NET ライフサイクルの以前の場所またはどこかにHttpResponse
参照を追加できます。これを行うには、BeginRequest イベントが適しています。HttpContext.Items
IHttpHandler
HttpContext.Items
参照するのと同じ辞書を参照するため、 MVC3HttpContextBase.Items
のすべてのアイテムにアクセスできます。
ですが、HttpResponseWrapper
のパブリック アクセサはありませんHttpResponse
。したがって、直接アクセスできる参照はありません。フレームワークが基になる参照の代わりにラッパーの提供を開始することを決定する前に、直接アクセス可能な参照を作成するには、イベントのイベント ハンドラーを作成しますHttpApplication.BeginRequest
。ハンドラーには、HttpContext
オブジェクトへの参照があります。設定しHttpContext.Items["HttpRequest"] = HttpContext.Request
ます。HttpRequest
次に、コントローラでによって参照にアクセスできるようになりますRequestContext.HttpContext.Items["HttpRequest"]
。