【问题标题】:HttpContext vs HttpListenerContextHttpContext 与 HttpListenerContext
【发布时间】:2009-03-10 15:42:38
【问题描述】:

在将 webapp 从 IIS/asp.net 移植到 HttpListener 时,我觉得有些奇怪。

虽然两者都有上下文、请求和响应的概念,但 HttpListener 变体与 IIS/asp.net 变体没有共同的接口,尽管接口几乎相同。

为了解决这个问题,我创建了自己的通用接口(IContext、IRequest 和 IResponse),并用这些接口的实现包装了相应的服务器生成的对象,这样我就不需要处理程序的两个单独的实现我正在移植的代码。

这导致了包装器的类爆炸(总共 10 个),只是为了围绕这个缺少的公共接口编写代码。

我是否错过了一个技巧,或者这只是 .net API 的一个缺点?

【问题讨论】:

    标签: .net http iis


    【解决方案1】:

    我会说整个HttpContext都有这个缺点。添加单元测试时会发生同样的情况,您将它们包装起来以便能够在单元测试中用模拟替换。

    【讨论】:

      【解决方案2】:

      在编写需要与 IIS (IHttpAsyncHandler) 和独立 (HttpListener) 兼容的处理程序时,我遇到了相同的 .NET 设计限制。我采用相同的方法为两者编写通用包装器。这似乎确实是 .NET API 的一个缺点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-07
        • 2021-05-05
        • 2019-11-17
        • 2011-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多