簡體   English   中英

為什么從.NET中刪除了HttpWebRequest和HttpWebResponse的構造函數?

[英]Why were constructors for HttpWebRequest and HttpWebResponse removed from .NET?

產品代碼實例化這些類型也許沒有意義,但是構造函數的棄用使使用WebRequest/ResponseHttp實現的單元測試客戶端的麻煩遠遠超過了應有的程度。 我認為將構造函數撤走沒有任何價值,而讓它們具有明顯的價值,那么棄用它們的技術原因是什么呢?

嗯,為什么您確實需要HttpWebRequest的構造函數? WebRequest.Create相比,我看不到它的任何首選項,建議將其作為從一開始就在所有版本中創建此類請求的首選方法。

此方法將HttpWebRequest作為WebRequest返回,但是您仍然可以根據需要將其WebRequest轉換為直接類型。 如果您提供其他協議,例如file://ftp:// ,它將返回相應的類型。

我認為這個過時列表是將所有使用的平台標准化.NET Core的一部分,並且在代碼的單個位置維護WebRequest創建將更加簡單。

更新
我認為您已經看過有關派生WebRequest類的文章,因此,我將在這里寫另一組意見:

WebRequest出發時,需要注意兩點:

正如MSDN所說:

默認情況下, HttpWebRequest類已注冊為服務於HTTP和HTTPS方案的請求。 嘗試為這些方案注冊其他WebRequest后代的嘗試將失敗。

因此,Microsoft希望控制面向httphttps的類,而不希望任何人用自己的功能替換此功能。 我認為可以這樣做是出於安全考慮。 悲傷但真實。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM