test.aspx.vb와 함께 Test.aspx 페이지가 있다고 가정 해 봅니다.메서드 이름이 문자열에 포함되어있을 때 메서드 호출
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"이 생성 됨) Null 참조하지만, (호출없이) 방법 항목의 직접 호출은 label1.text 잘 업데이트합니다.
모든 솔루션이 있습니까? 누군가가 나에게 약간의 팁을 줄 수 있습니까?
정확히 하드 코딩 할 수없는 것은 무엇입니까? 메서드 문자열 또는 메서드 호출 자체? –
내가 찾을 수있는 유일한 해결책은 객체를 반환하는 메소드를 호출하고 해당 객체를 데이터 소스로 사용하여 test.aspx와 상호 작용하지만 모든 메소드가 이미 test.aspx.vb에 있으므로 간단 할 수 있습니다. 나는 그 메소드 내에서 test.aspx와 간단히 상호 작용할 수있다. – David
전화 할 선택 사례 (또는 if 문)를 피할 수있는 방법을 찾아야합니까? 방법. 나는 완벽한 세계에서 단순히 excecuteMethod (StringWithMethodName)과 같은 것을 할 것이다. – David