代码之家  ›  专栏  ›  技术社区  ›  Aaron Powell

如何在Web窗体应用程序中使用System.Web.Abstracts?

  •  2
  • Aaron Powell  · 技术社区  · 17 年前

    我想拥有我们自己的 上下文 它在标准HttpContext/HttpRequest/HttpResponse/etc对象之上提供了一些帮助。此外,我还希望将HttpContext类与上下文解耦。

    我现在不想设计一个解决一些问题的解决方案,但需要重新编写以实现MVC中的可测试性(在MCV中是无用的),但我迄今为止所实现的似乎并没有那么有用。

    问题是我找不到任何关于如何实现这一点,如何扩展的好例子 HttpContextWrapper HttpContextBase 这样你就可以保持关注的分离。

    2 回复  |  直到 17 年前
        1
  •  0
  •   Adam Ralph    17 年前

    为HttpContext编写一些扩展方法还不够吗?我在当前的应用程序中已经做到了这一点,而且效果很好。我想这取决于您希望定制的HttpContext类有多复杂,以及它是否打算表示与标准HttpContext所表示的完全不同的内容。不过,我真的想不出这样的情景。也许您可以详细介绍一下定制的HttpContext是什么样子的?

        2
  •  0
  •   Damien McGivern    17 年前

    您不需要重写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));
    
    推荐文章