在IronPython中访问.NET类方法重载的错误

Nat*_*ley 18 python ironpython

我有一个用C#编写的课程.该类有两种方法,签名是:

bool Navigate(string url)
bool Navigate(Uri url)
Run Code Online (Sandbox Code Playgroud)

从我收集的内容来看,IronPython运行时应该尝试根据传入的参数选择最佳重载.在我的情况下,我传入一个我知道非空的字符串,但我得到以下异常:

多个目标可以匹配:导航(Uri),导航(str)

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

Cra*_*sta 4

听起来好像 IronPython 决定将字符串转换为Uris。也许这就是一个“功能”,我不知道。您可以执行以下操作(来源):

navigate_string = myObj.Navigate.Overloads[type("")]
navigate_string("asdf")
Run Code Online (Sandbox Code Playgroud)