删除过时的WebProxy.GetDefaultProxy()引用(Removing obsolet

2019-06-25 14:49发布

我有一些代码是讨厌我,因为它产生过时的警告,但我很谨慎,因为删除它的:

一)它的工作原理

B)我没有把它写

C)我现在还没有测试它的一种手段。 (即我没有访问到它需要一台机器)

该代码是如下

System.Net.WebProxy proxyObject = System.Net.WebProxy.GetDefaultProxy();
proxyObject.Credentials = System.Net.CredentialCache.DefaultCredentials;
proxyObject.BypassProxyOnLocal = true;
System.Net.GlobalProxySelection.Select = proxyObject;

警告消息是

警告31“System.Net.GlobalProxySelection”已过时:“此类已被弃用。 请使用WebRequest.DefaultWebProxy,而不是访问和设置全局默认代理。 用它代替GetEmptyWebProxy“空”。 http://go.microsoft.com/fwlink/?linkid=14202 “

但是,如果我的理解是正确的,(假设该程序试图访问Web服务将永远不会是本地)我真的应该做的仅仅是删除这四行?

这是正确的,或者有错过了什么?

PS。 我知道有可能是一个选项的#pragma忽略警告,但我真的不希望走这条路线。

Answer 1:

是的,我你是对的。

对此进行测试的一个好办法是小提琴手 ,因为它做的事情(除了微量http请求),一个是自动将自己设置为您的IE代理。

如果运行小提琴手,然后将下面的代码

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://news.bbc.co.uk");
 //request.Proxy = null; // uncomment this to bypass the default (IE) proxy settings
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 Console.WriteLine("Done - press return");
 Console.ReadLine();

你会看到与代码中没有明确的代理替代(如“我真的应该做的仅仅是删除这四行什么”),请求确实捡起IE全球默认的代理,你看到你的要求提琴手。

只有当你取消对空代理分配,不会请求绕过全球代理设置,并没有出现在提琴手。

所以,是的 - 我认为你是对的; 默认的代理,你可以删除显式代理代码。



文章来源: Removing obsolete WebProxy.GetDefaultProxy() references