Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 突然可以';t将IWebProxy强制转换为WebProxy_C#_Proxy_Casting - Fatal编程技术网

C# 突然可以';t将IWebProxy强制转换为WebProxy

C# 突然可以';t将IWebProxy强制转换为WebProxy,c#,proxy,casting,C#,Proxy,Casting,我有一些代码可以创建IWebProxy,然后将其强制转换为WebProxy。我运行了我的程序,它成功了。然后我插入了一个断点,它突然停止工作,并给出了错误:“无法将类型为'webproxywrapper不透明'的对象强制转换为类型为'System.Net.WebProxy' 另一件事是,我们在另外两个程序中使用了这种方法。我运行这些程序,演员没有问题 为什么会突然改变呢?怎么把它弄坏了?我没有对代码做任何修改,现在它永久性地被破坏了 我该如何解决这个问题?我必须使用IWebProxy对象,因为它

我有一些代码可以创建IWebProxy,然后将其强制转换为WebProxy。我运行了我的程序,它成功了。然后我插入了一个断点,它突然停止工作,并给出了错误:“无法将类型为'webproxywrapper不透明'的对象强制转换为类型为'System.Net.WebProxy'

另一件事是,我们在另外两个程序中使用了这种方法。我运行这些程序,演员没有问题

为什么会突然改变呢?怎么把它弄坏了?我没有对代码做任何修改,现在它永久性地被破坏了

我该如何解决这个问题?我必须使用IWebProxy对象,因为它是从不是我的代码的代码中的方法返回的(否则我会更改它),但最终我需要使用WebProxy

编辑:这里有一些代码

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。你的答案比只修复我的代码并允许我转换这些代码要好,因为你的帖子让我寻找替代方法,现在它比其他方法更可靠。