在应用程序首次替换 WebRequest.DefaultWebProxy 之前,保存从配置中得到的策略:

System.Net.IWebProxy configuredPolicy =
    System.Net.WebRequest.DefaultWebProxy;

在受控的应用程序边界上还原该引用:

System.Net.WebRequest.DefaultWebProxy = configuredPolicy;

IWebProxy 可以为不同目标选择不同的路由和绕过规则。解析一个测试 URL 并据此构造固定的 WebProxy 会丢掉这些决定。

DefaultProxySection 是配置数据,而不是用于重建 Framework 实际策略的公开转换接口,其内部转换代码也不是应用程序 API。

保存的值是对象引用,而不是深层副本。如果应用程序修改了该对象的凭据或设置,重新赋回引用无法撤销这些修改。

对于单个请求或独立工作负载,直接配置它自己的客户端。在并发工作期间临时切换这个共享默认值,会让其他调用方得到同样不断变化的策略。

相关文章