为什么同时有System.Net.Http和System.Web.Http命名空间?

当我研究.NET中可用的各种类库时,这只是一个简单的问题。 我注意到有System.Net.Http命名空间和System.Web.Http命名空间。

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

System.Net.Http,System.Web.Http

Alexander Trauzzi asked 2020-02-23T01:15:31Z
5个解决方案
25 votes

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

Max Toro answered 2020-02-23T01:16:13Z
20 votes

System.Net.Http与网络编程有关,而System.Web.Http具体与Web编程有关。

jmcilhinney answered 2020-02-23T01:15:53Z
9 votes

根据我的经验,当您查看自托管的Webapi服务与IIS托管的区别时,两个命名空间之间的区别变得很明显。 自托管仅需要System.Http,而IIS托管则两者都需要。 看到“ MapHttpRoute”和“ MapRoute”之间的区别? 进行类似的讨论和有用的链接。

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

它们都不被弃用。

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

Dan Ling answered 2020-02-23T01:16:47Z
3 votes

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

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

Reyan Chougle answered 2020-02-23T01:17:11Z
0 votes

System.Web在很大程度上取决于IIS Web服务器,该服务器只能托管在Windows计算机上。 随着Microsoft走向开源并开始支持Linux和Mac等多个平台,他们需要提取独立于IIS服务器的功能。 因此,System.Net独立于IIS功能,并且可以部署到不同的平台。

Nauty answered 2020-02-23T01:17:33Z
translate from https://stackoverflow.com:/questions/21667319/why-is-there-both-a-system-net-http-and-system-web-http-namespace