2

私は、vNext +1 リリースのために MVC に移植する予定の Web フォーム アプリケーションに取り組んでいます。しかし、現時点では .NET 3.5 SP1 Web フォーム アプリケーションです。

標準の HttpContext/ HttpRequest/ HttpResponse/ などのオブジェクトの上にいくつかのヘルパーを提供する独自のコンテキストが必要です。また、コンテキストから HttpContext クラスを分離したいと考えています。

MVC に移行する意図があるため、System.Web.Abstractions アセンブリに同梱されている HttpContextBase (および関連するクラス) でカスタム コンテキストを機能させるのは良い考えだと思いました。

現時点ではいくつかの問題を解決するソリューションを設計したくありませんが、MVC でテスト可能にするために書き直す必要があります (MCV では役に立たない) が、これまでに達成したことは実際にはそうではないようです使える。

HttpContextWrapper問題は、これを達成する方法、 を拡張する方法、またはHttpContextBase関心の分離を維持できるようにするための良い例が見つからないことです。

4

2 に答える 2

0

これを実現するためにHttpContextWrapperまたはHttpContextBaseをオーバーライドする必要はありませんが、代わりにカスタムコンテキストをHttpContextBaseオブジェクトで機能させることで、カスタムコンテキストを個別にテストできます。

public class MyContext
{

    // helper methods work with this context
    HttpContextBase _ctx;

    public MyContext(HttpContextBase context)
    {
        _ctx = context;
    }


}

また、実際のアプリケーションでカスタムコンテキストを作成する場合は、を使用して初期化するだけです。

new MyContext(new HttpContextWrapper(HttpContext.Current));
于 2009-07-27T00:28:29.997 に答える
0

HttpContextの拡張メソッドを作成するだけでは不十分ですか?私は現在のアプリケーションでこれを実行しましたが、うまく機能します。カスタムHttpContextクラスをどれだけ複雑にするか、および標準のHttpContextが表すものとは根本的に異なるものを表すことを目的としているかどうかによって異なると思います。しかし、私はこれのシナリオを本当に考えることはできません。おそらく、カスタムHttpContextがどのようになるかについてもう少し詳しく説明できますか?

于 2009-06-21T17:42:09.743 に答える