2011-05-16 116 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

相关问题