【问题标题】:Why is there both a System.Net.Http and System.Web.Http namespace?为什么同时存在 System.Net.Http 和 System.Web.Http 命名空间?
【发布时间】:2014-03-07 04:48:55
【问题描述】:

我正在研究 .NET 中可用的各种类库时提出一个简单的问题。我注意到有一个 System.Net.Http 命名空间和一个 System.Web.Http 命名空间。

  • 这两个命名空间的用途是什么?
  • 创建两个看似模棱两可的命名空间的动机是什么?
  • 是否有任何我应该了解的历史或其中一个命名空间是否“已弃用”?

System.Net.Http, System.Web.Http

【问题讨论】:

  • 命名空间之间的区别在于它们的成员不同
  • 我可能正在寻找更深入的解释。查看要点。
  • (我认为包含类中差异的一般分类法是相关的。)
  • 两者都没有被弃用。您通常会同时使用它们。
  • 这个问题需要更好的答案。

标签: c# asp.net .net


【解决方案1】:

System.Net.Http 用于客户端 HTTP 编程。 System.Web.Http 用于服务器端 HTTP 编程。

【讨论】:

  • 这个命名约定应该是直观的吗?
  • @DLeh 仅当您使用过其他 System.Net 或 System.Web 命名空间时,例如System.Net.Mail 或 System.Web.Mvc.
  • 当我发现我的服务器代码同时使用了这两个命名空间时,我想知道这个问题。具体来说,我在我的服务器中使用 System.Net.Http.HttpResponseMessage 。所以...我不应该在我的服务器中使用那个类?
  • 如果这个答案是真实的或准确的,那么 HttpResponseMessage 将在 System.Web.Http 中定义,而不是在 System.Net.Http 中。事实上;这些解释都没有清楚地描述或阐明对差异的合理解释,也没有两者存在的目的,也没有对功能与设施的明确分离的合理解释。
【解决方案2】:

System.Net.Http 涉及网络编程,而 System.Web.Http 专门涉及 Web 编程。

【讨论】:

  • System.Web IIS/ASP.NET 的某些方面是否特定?
  • System.Web.Http 和 System.Net.Http 是 ASP.NET Web API 的具体实现。 asp.net/web-api
  • 嗯。 HTTP 不是特定于网络的吗?还是我在证明我的无知?我不能说你的答案是错误的,但我不相信你是对的。我也想知道 Max Toro 的答案。那正确吗?除此之外?而不是这个?还是两者都没有?
  • 我看不出这个答案是如何提供任何清晰度的
  • “The net”和“the web”都用于指代互联网。这种冗余/可互换性大概是首先提出这个问题的原因
【解决方案3】:

“System.Web.Http”用于创建 WebAPI。

“System.Net.Http”用于消费 WebAPI(使用HttpClient 类)

【讨论】:

  • 这是我找到的最简单的答案@ReyanChougle
【解决方案4】:

根据我的经验,当您查看自托管 webapi 服务与 IIS 托管之间的区别时,这两个命名空间之间的区别变得清晰。自托管只需要 System.Http,而 IIS 托管需要两者。请参阅Difference between "MapHttpRoute" and "MapRoute"? 以获取类似的讨论和有用的链接。

所以,有两个的原因是您可以创建一个不依赖于整个 ASP.NET 堆栈的自托管 Web 服务。

它们都没有被弃用。

我还没有看到微软对此的官方解释,但这是我能找到的最好的解释。

【讨论】:

    【解决方案5】:

    System.Web 严重依赖 IIS Web 服务器,它只能托管在 Windows 机器上。随着微软走向开源并开始支持 Linux 和 Mac 等多种平台,他们需要提取独立于 IIS 服务器的功能。因此,System.Net 独立于 IIS 功能并且可以部署到不同的平台。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2022-12-31
      • 1970-01-01
      • 2012-03-25
      相关资源
      最近更新 更多