对于产品代码实例化这些类型可能没有意义,但是对于构造函数的弃用使得使用Http
WebRequest/Response
实现{{1}}的单元测试客户端比它更麻烦应该。我认为将构造函数移开并没有任何价值,并且明显有价值,所以他们弃用的技术原因是什么?
答案 0 :(得分:2)
嗯,为什么你需要HttpWebRequest
的构造函数?与WebRequest.Create
相比,我无法看到它的任何偏好,file://
被建议作为从一开始就在所有版本中创建此类请求的优先方式。
此方法将HttpWebRequest
作为WebRequest
返回,但您仍然可以根据需要将其转换为直接类型。如果您提供其他协议(ftp://
或Obsolete list),则会返回相应的类型。
我认为这个deriving the WebRequest
class是为所有将要使用的平台标准化.NET Core的一部分,并且维护{{1}更加简单在代码的一个单一点创建。
<强>更新强>:
我认为你已经看到了关于IWebRequestCreate
的这篇文章,所以我只是在这里写下我的另一个观点:
当您从WebRequest
取消时,您需要两点:
WebRequest.RegisterPrefix
界面正如MSDN所说:
默认情况下,
WebRequest
类已注册为HTTP和HTTPS方案的服务请求。尝试为这些方案注册不同的HttpWebRequest
后代将失败。
因此,Microsoft希望控制WebRequest
和http
面向的类,并且不希望任何人用自己的类替换此功能。我认为这可以通过一些安全问题来完成。悲伤却又是真的。