為什么同時有System.Net.Http和System.Web.Http命名空間?

當我研究.NET中可用的各種類庫時,這只是一個簡單的問題。 我注意到有System.Net.Http命名空間和System.Web.Http命名空間。

  • 這兩個名稱空間有什么作用?
  • 創建兩個看似模棱兩可的命名空間的動機是什么?
  • 我是否應該了解任何歷史記錄可以领救济金的游戏,或者其中一個名稱空間“已棄用”?

System.Net.Http,System.Web.Http

asked 2020-02-23T01:15:31Z
5個解決方案
25 votes

System.Net.Http用于客戶端HTTP編程。 System.Web.Http用于服務器端HTTP編程。

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

System.Net.Http與網絡編程有關,而System.Web.Http具體與Web編程有關。

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

根據我的經驗,當您查看自托管的Webapi服務與IIS托管的區別時,兩個命名空間之間的區別變得很明顯。 自托管僅需要System.Http,而IIS托管則兩者都需要。 看到“ MapHttpRoute”和“ MapRoute”之間的區別? 進行類似的討論和有用的鏈接。

因此,有兩個原因是為了使您可以創建不依賴于整個ASP.NET堆棧的自托管Web服務。

它們都不被棄用。

我還沒有看到微軟對此的官方解釋,但這是我所能找到的的解釋。

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

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

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

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

System.Web在很大程度上取決于IIS Web服務器,該服務器只能托管在Windows計算機上。 隨著Microsoft走向開源并開始支持Linux和Mac等多個平臺,他們需要提取獨立于IIS服務器的功能。 因此,System.Net獨立于IIS功能,并且可以部署到不同的平臺。

answered 2020-02-23T01:17:33Z
translate from