2009-12-30 56 views
18

我有一个我用C#编写的类。这个类有两个方法,签名是:访问IronPython中.NET类方法重载的错误

bool Navigate(string url) 
bool Navigate(Uri url) 

从我所收集,IronPython的运行时应该尽量选择基于传入的参数最好的过载。就我而言,我传递,我知道非空的字符串,但我得到以下异常:

多个目标可以匹配:导航(URI),导航(STR)

看来我的论点显然是一个字符串,为什么IronPython坚持认为多个目标匹配? System.String没有强制转换为System.Uri,因此第二种方法重载不应该成为可供选择的可行方案...

+0

有趣的是,我自己也没有这个问题,我也不知道如何提醒,但我害怕。 – Finglas 2009-12-30 18:17:45

+1

@Nathan,我无法重现这个问题。我使用了您的两个签名,并按预期工作。我正在使用IronPython 2.6 Final。 – 2010-01-01 14:45:26

+0

当然,在我的课程的其他部分,显然还有其他一些奇怪的事情发生。在此期间,我发现了一种解决方法,但是我的课与我的框架有一些联系,无法在此处轻松发布以进行测试。 – 2010-01-01 17:40:05

回答

3

听起来像是IronPython决定它可以将字符串转换为Uri s。也许这是一个“功能”,我不知道。你可以做下面的事情(source):

navigate_string = myObj.Navigate.Overloads[type("")] 
navigate_string("asdf")