2009-12-30 51 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")