也许产品代码实例化这些类型没有意义,但构造函数的弃用使得使用Http
实现的单元测试客户端WebRequest/Response
比应有的麻烦多得多。我认为将构造函数带走没有任何价值,而拥有它们显然很有价值,那么弃用它们的技术原因是什么?
问问题
1234 次
1 回答
2
嗯,你到底为什么需要 的构造函数HttpWebRequest
?与 相比,我看不到它的任何偏好,WebRequest.Create
建议将其作为从一开始就在所有版本中创建此类请求的首选方式。
此方法返回HttpWebRequest
as WebRequest
,但您仍然可以根据需要将其转换为直接类型。如果您将提供一些其他协议,如file://
or ftp://
,它将返回相应的类型。
我认为这个Obsolete 列表WebRequest
是为所有将要使用的平台标准化 .NET Core 的一部分,并且在单个代码点中维护创建会更加简单。
更新:
我想你已经看过这篇关于派生WebRequest
类的文章,所以我将在这里写下我的另一个观点:
当你从 dering 时WebRequest
,你需要两点:
- 实现
IWebRequestCreate
接口 WebRequest.RegisterPrefix
用方法注册类
正如 MSDN 所说:
默认情况下,
HttpWebRequest
该类注册为 HTTP 和 HTTPS 方案的服务请求。尝试WebRequest
为这些方案注册不同的后代将失败。
所以微软想要控制http
和https
导向类,不希望任何人用他们自己的功能替换这个功能。我认为由于一些安全问题,可以这样做。悲伤但真实。
于 2015-03-12T23:44:51.707 回答