【问题标题】:Errors accessing .NET class method overloads in IronPython在 IronPython 中访问 .NET 类方法重载时出错
【发布时间】:2012-11-04 08:46:54
【问题描述】:

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

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

据我所知,IronPython 运行时应该尝试根据传入的参数选择最佳重载。在我的例子中,我传入了一个我知道是非空的字符串,但我得到了以下异常:

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

既然我的论点公然是一个字符串,为什么 IronPython 坚持多个目标可以匹配? System.String 不会强制转换为 System.Uri,因此第二种方法重载不应该是一个可行的选择...

【问题讨论】:

  • 有趣,我自己没有遇到过这个问题,虽然我害怕,但我也不知道如何建议。
  • @Nathan,我无法重现该问题。我使用了你的两个签名,它按预期工作。我正在使用 IronPython 2.6 Final。
  • 那么我班的其他学生显然还有其他一些奇怪的事情发生。与此同时,我找到了一种解决方法,但我的课程与我的框架有点过于紧密,无法轻松地在此处发布以进行测试。

标签: python ironpython


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-25
    • 2011-08-27
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多