Удаление устаревших ссылок WebProxy.GetDefaultProxy () - PullRequest
3 голосов
/ 11 июля 2009

У меня есть немного кода, который раздражает меня, потому что он генерирует устаревшие предупреждения, но я опасаюсь удалить его, потому что:

а) Работает

б) я не написал

в) В настоящее время у меня нет возможности проверить это. (т.е. у меня нет доступа к машине, где это требуется)

Код выглядит следующим образом

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 для доступа и установки глобального прокси по умолчанию. Используйте 'null' вместо GetEmptyWebProxy. http://go.microsoft.com/fwlink/?linkid=14202'

Но, если мое понимание верно, (и при условии, что веб-сервис, к которому программа пытается получить доступ, никогда не будет локальным), что я действительно должен сделать, это просто удалить эти четыре строки?

Это правильно, или что-то пропустили?

PS. Я знаю, что, вероятно, есть опция #pragma, чтобы игнорировать предупреждение, но я не хочу идти по этому пути.

1 Ответ

3 голосов
/ 11 июля 2009

Да, я думаю вы правы.

Хороший способ проверить это с помощью Fiddler , потому что одна из вещей, которые он делает (кроме трассировки http-запросов), заключается в автоматической настройке себя в качестве прокси IE.

Если вы запустите Fiddler, а затем следующий фрагмент кода

 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, и вы будет видеть ваш запрос в Fiddler.

Только когда вы раскомментируете нулевое назначение прокси, запрос обходит глобальные настройки прокси и не появляется в Fiddler.

Так что да - я думаю, что вы правы; для прокси по умолчанию вы можете удалить явный код прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...