假設我有一個Test.aspx頁面以及test.aspx.vb.當方法名稱包含在字符串中時調用方法
Test.aspx.vb包含一個類名「TestClass」。在那個類中我有method1(),method2()和method3()
我需要能夠調用其中的一種方法,但我不能硬編碼它,要執行的方法來自一個字符串。
我不能做
Select Case StringContainingTheNameOfTheDesiredMethod
Case "Method1"
Method1()
Case "Method2"
Method2()
end case
。
我可以找到如何處理反射(I followed that example)。我的問題是這些方法可能需要與test.aspx進行交互,但是當我使用.invoke時,它似乎創建了一個新線程或上下文,並且對test.aspx的任何引用都變爲null(設置label1.text =「something」將生成空引用,但方法1(不調用)的直接調用將更新label1.text就好了。
有沒有什麼解決辦法嗎?誰能給我一些建議嗎?
究竟你難道不能硬編碼?方法字符串或方法調用自己? –
我能找到的唯一解決方案是調用一個方法,該方法返回一個對象並將該對象用作數據源與test.aspx進行交互,但由於所有方法都已經在test.aspx.vb中,因此它會更簡單我可以簡單地在這些方法中與test.aspx進行交互。 – David
我需要找到一種方法來避免選擇的情況下(或如果語句)調用?方法。我有一個字符串,其中包含需要調用的方法的名稱,在完美的世界中,我會簡單地執行諸如excecuteMethod(StringWithMethodName) – David