C# 突然可以';t将IWebProxy强制转换为WebProxy
我有一些代码可以创建IWebProxy,然后将其强制转换为WebProxy。我运行了我的程序,它成功了。然后我插入了一个断点,它突然停止工作,并给出了错误:“无法将类型为'webproxywrapper不透明'的对象强制转换为类型为'System.Net.WebProxy' 另一件事是,我们在另外两个程序中使用了这种方法。我运行这些程序,演员没有问题 为什么会突然改变呢?怎么把它弄坏了?我没有对代码做任何修改,现在它永久性地被破坏了 我该如何解决这个问题?我必须使用IWebProxy对象,因为它是从不是我的代码的代码中的方法返回的(否则我会更改它),但最终我需要使用WebProxy 编辑:这里有一些代码C# 突然可以';t将IWebProxy强制转换为WebProxy,c#,proxy,casting,C#,Proxy,Casting,我有一些代码可以创建IWebProxy,然后将其强制转换为WebProxy。我运行了我的程序,它成功了。然后我插入了一个断点,它突然停止工作,并给出了错误:“无法将类型为'webproxywrapper不透明'的对象强制转换为类型为'System.Net.WebProxy' 另一件事是,我们在另外两个程序中使用了这种方法。我运行这些程序,演员没有问题 为什么会突然改变呢?怎么把它弄坏了?我没有对代码做任何修改,现在它永久性地被破坏了 我该如何解决这个问题?我必须使用IWebProxy对象,因为它
public IWebProxy ToIWebProxy(string targetAddress)
{
//Does some proxy validation then returns an IWebProxy
}
在代码的其他地方我做这个
WebProxy myProxy = (WebProxy)(ToWebProxy(myAddress));
甚至试过这个
IWebProxy myIWebProx = ToWebProxy(myAddress);
WebProxy myProx = (WebProxy)(myIWebProx);
同样,这在20分钟前就起作用了。您不能将WebProxyWrapper不透明转换为WebProxy。仅IWebProxy:
internal class WebProxyWrapperOpaque : IAutoWebProxy, IWebProxy
{
// etc...
}
它是一个IWebProxy。方法是:'public-IWebProxy-TowerProxy(string-targetAddress)'cast是:'WebProxy-myProx=(WebProxy)(TowerProxy(address));这一切直到20分钟前才奏效。我不知道为什么它现在说它是一个“WebProxyWrapper不透明的”@Mike,如果你解释一下你的实际发现,这个答案标记会很有用。请继续。我标记了它,部分原因是它是唯一的答案,但也因为我从不知道您不能强制转换这些,并意识到正因为如此,存在类型不匹配,调试器无法捕获,我需要采取不同的方法。因此,我查看了我使用的所有类,发现它们首先使用的是IWebProxy,而不是WebProxy(duh!)。最终放弃所有使用WebProxy的代码,只使用IWebProxy。你的答案比只修复我的代码并允许我转换这些代码要好,因为你的帖子让我寻找替代方法,现在它比其他方法更可靠。