.NET IWebProxy: unngå å caste systemproxyer til WebProxy
Håndter en systemproxy som returneres som IWebProxy, uten å anta at dens konkrete klasse er WebProxy.
IWebProxy policy = WebRequest.GetSystemWebProxy();
request.Proxy = policy;
Behold det returnerte objektet som IWebProxy. Dette utdraget gjelder eksisterende WebRequest-basert kode, ikke en anbefaling om å ta i bruk det eldre API-et i en ny applikasjon.
WebProxy implementerer grensesnittet, men ikke alle objekter som implementerer grensesnittet, arver fra WebProxy. En systeminnpakning kan derfor avvise castingen før noen nettverksforespørsel oppstår. Et privat .NET Framework-klassenavn som WebProxyWrapperOpaque er en implementasjonsdetalj, ikke et problem med proxy-endepunktet eller kontoen.
For en rutebeslutning, kall IsBypassed(destination) og GetProxy(destination) med den faktiske destinasjons-URI-en. En omgåelse kan returnere selve destinasjonen, og en PAC-basert policy kan velge en annen rute for en annen vert.
For autentisering eksponerer IWebProxy allerede Credentials. Bruk den støttede kontoen og metoden uten å caste for å nå egenskapen.
Å trekke ut én URI for å bygge en erstatnings-WebProxy kaster bort den opprinnelige policyens oppførsel per destinasjon. Gjør det bare når et fast endepunkt er den tiltenkte applikasjonskonfigurasjonen, ikke som en omvei rundt en typefeil.