.NET IWebProxy: सिस्टम प्रॉक्सी को WebProxy में कास्ट करने से बचें
IWebProxy के रूप में लौटाई गई सिस्टम प्रॉक्सी को यह माने बिना संभालें कि उसकी ठोस क्लास WebProxy है।
IWebProxy policy = WebRequest.GetSystemWebProxy();
request.Proxy = policy;
लौटाए गए ऑब्जेक्ट को IWebProxy के रूप में ही रखें। यह अंश मौजूदा WebRequest-आधारित कोड पर लागू होता है, नई एप्लिकेशन में उस पुराने API को अपनाने की सिफ़ारिश नहीं है।
WebProxy इंटरफ़ेस लागू करता है, लेकिन इंटरफ़ेस लागू करने वाला हर ऑब्जेक्ट WebProxy से विरासत नहीं पाता। इसलिए सिस्टम रैपर कोई भी नेटवर्क अनुरोध होने से पहले कास्ट अस्वीकार कर सकता है। WebProxyWrapperOpaque जैसा निजी .NET Framework क्लास नाम कार्यान्वयन का विवरण है, प्रॉक्सी एंडपॉइंट या खाते की समस्या नहीं।
रूट निर्णय के लिए वास्तविक गंतव्य URI के साथ IsBypassed(destination) और GetProxy(destination) कॉल करें। बायपास वही गंतव्य लौटा सकता है, और PAC-आधारित नीति किसी अन्य होस्ट के लिए दूसरा रूट चुन सकती है।
प्रमाणीकरण के लिए IWebProxy पहले से Credentials उजागर करता है। प्रॉपर्टी तक पहुँचने के लिए कास्ट किए बिना समर्थित खाता और विधि इस्तेमाल करें।
बदली WebProxy बनाने के लिए एक URI निकालना मूल नीति के प्रति-गंतव्य व्यवहार को छोड़ देता है। ऐसा केवल तब करें जब स्थिर एंडपॉइंट ही इच्छित एप्लिकेशन कॉन्फ़िगरेशन हो, टाइप-त्रुटि के वर्कअराउंड के रूप में नहीं।