System.InvalidCastException:无法将类型 'WebProxyWrapper' 的对象转换为类型 'System.Net.WebProxy'

System.InvalidCastException : Unable to cast object of type 'WebProxyWrapper' to type 'System.Net.WebProxy'

在 .Net 2.0 中,以下用于工作:

HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create("http://www.google.com");
            WebProxy proxy = (WebProxy) WebRequest.DefaultWebProxy;

我正在使用 .Net 4.5,现在它返回 IWebProxy 而不是 WebProxy

如何将其转换为 WebProxy 而不是 IWebProxy

我想这样做的原因是检查 proxy.Address.AbsoluteUri 并且使用 IWebProxy 无法访问它。

看起来 WebRequest.DefaultWebProxy 总是返回一个 IWebProxy,但是底层的具体类型已经改变。因此,与其依赖底层类型,不如在可能的情况下确定如何通过接口做同样的事情。为此,以下应该给你你想要的Uri

WebRequest.DefaultWebProxy.GetProxy(httpWReq.Address).AbsoluteUri