Подтвердить что ты не робот

Ошибки доступа к перегрузкам метода класса .NET в IronPython

У меня есть класс, который я написал на С#. Класс имеет два метода: подписи:

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

Из того, что я собираю, предполагается, что среда исполнения IronPython должна попытаться выбрать лучшую перегрузку на основе аргумента переданного аргумента. В моем случае я передаю строку, которая, как я знаю, не имеет значения null, но я получаю следующее исключение:

Несколько целей могут соответствовать: Navigate (Uri), Navigate (str)

Увидев, что мой аргумент является откровенно строкой, почему IronPython настаивает на том, что несколько целей могут совпадать? System.String не передается в System.Uri, и поэтому второй метод перегрузки не должен быть жизнеспособным кандидатом на выбор...

4b9b3361

Ответ 1

Похоже, что IronPython решает, что он может преобразовывать строки в Uri s. Возможно, это "особенность", я не знаю. Вы можете сделать что-то вроде следующего (источник):

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