2011-05-16 42 views
2

我有一個類型的對象和方法名稱:獲取MethodBase對象的最快方法是什麼?

Type type; 
string methodName; 

,我需要的方法「方法名」一MethodBase對象,在堆棧​​中的某處。
這工作:

MethodBase nemo; 
StackTrace st = new StackTrace(); // Behaves poorly... 
for(int i =0; i< st.FrameCount; i++) 
{ 
    StackFrame sf = st.GetFrame(i); 
    if (sf.GetMethod().Name == methodName) 
    { 
     nemo = sf.GetMethod();  
    } 
} 

但我需要一個更快的方法...

+0

您是否找到了更好的方法? :) – 2011-07-28 08:29:31

+0

不,我沒有... – seldary 2012-01-24 15:53:44

回答

0

你可以寫type.GetMethod(methodName)

+0

他顯然希望該方法的實例出現在調用堆棧中,而不是當前未執行的新方法。 – KeithS 2011-05-16 18:20:19

+0

@Keith:方法沒有實例。這沒有任何意義。 – SLaks 2011-05-16 18:22:05

+0

@KeithS - 無論您是從調用堆棧還是從類型中獲取它,反射元數據都沒有任何區別。只有在您不知道該方法可能出現哪種方式時,才需要走這個調用堆棧 - 在這種情況下,這是不可避免的。 – LBushkin 2011-05-16 18:22:44

相關問題