假设我有一个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