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
在 .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