2009-06-21 32 views
2

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

標準のHttpContext/HttpRequest/HttpResponse/etcオブジェクトの上にいくつかのヘルパーを提供する私たち自身のコンテキストを持っていたいと思います。また、コンテキストからHttpContextクラスを切り離したいと思っています。

MVCに行く予定があるので、私たちのカスタムコンテキストをSystem.Web.Abstractionsアセンブリに含まれているHttpContextBase(および関連するクラス)で動作させることをお勧めします。

私は現時点でいくつかの問題を解決するソリューションを設計したくはありませんが、MVCでテスト容易性を達成するために書き直す必要があります(MCVでは役に立たないですが)本当に便利だと思う。

問題を解決する方法については、HttpContextWrapper、またはHttpContextBaseをどのように拡張して、問題の分離を維持できるかについては問題が見つかりません。

答えて

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)); 
0

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

+0

を使用して初期化します追加されるのはリクエストとレスポンスです。私は別のオブジェクト(ラッパーオブジェクト)が必要です。また、拡張メソッドとの分離もありません –

関連する問題