Ошибки доступа к перегрузкам метода класса .NET в IronPython
У меня есть класс, который я написал на С#. Класс имеет два метода: подписи:
bool Navigate(string url)
bool Navigate(Uri url)
Из того, что я собираю, предполагается, что среда исполнения IronPython должна попытаться выбрать лучшую перегрузку на основе аргумента переданного аргумента. В моем случае я передаю строку, которая, как я знаю, не имеет значения null, но я получаю следующее исключение:
Несколько целей могут соответствовать: Navigate (Uri), Navigate (str)
Увидев, что мой аргумент является откровенно строкой, почему IronPython настаивает на том, что несколько целей могут совпадать? System.String не передается в System.Uri, и поэтому второй метод перегрузки не должен быть жизнеспособным кандидатом на выбор...
Ответы
Ответ 1
Похоже, что IronPython решает, что он может преобразовывать строки в Uri
s. Возможно, это "особенность", я не знаю. Вы можете сделать что-то вроде следующего (источник):
navigate_string = myObj.Navigate.Overloads[type("")]
navigate_string("asdf")