.NET IWebProxy: vyhněte se přetypování systémových proxy na WebProxy
Pracujte se systémovým proxy vráceným jako IWebProxy, aniž byste předpokládali, že jeho konkrétní třída je WebProxy.
IWebProxy policy = WebRequest.GetSystemWebProxy();
request.Proxy = policy;
Vrácený objekt uchovejte jako IWebProxy. Tato ukázka se týká stávajícího kódu založeného na WebRequest, není doporučením přijmout toto zastaralé API v nové aplikaci.
WebProxy rozhraní implementuje, ale ne každý objekt, který rozhraní implementuje, dědí z WebProxy. Systémový obal proto může přetypování odmítnout dřív, než dojde k jakémukoli síťovému požadavku. Soukromý název třídy .NET Framework, například WebProxyWrapperOpaque, je detail implementace, ne problém koncového bodu proxy ani účtu.
Pro rozhodnutí o trase volejte IsBypassed(destination) a GetProxy(destination) se skutečným URI cíle. Obcházení může vrátit samotný cíl a politika založená na PAC může pro jiného hostitele zvolit jinou trasu.
Pro ověřování už IWebProxy vystavuje Credentials. Použijte podporovaný účet a metodu, aniž byste k vlastnosti přistupovali přetypováním.
Vyjmutí jednoho URI a sestavení náhradního WebProxy zahodí chování původní politiky pro jednotlivé cíle. Dělejte to jen tehdy, když je pevný koncový bod zamýšlenou konfigurací aplikace, ne jako obejití chyby typu.