在运行时怎么来获取当前执行函数名称及相关信息
如:
string test(string pArg1,int pArg2){
.....
retrun reslut;
}
怎么能获取到我当前执行的函数信息,也就是函数名为test返回值为string,有两个参数,一个为string,一个为int
能用反射么?
MethodInfo method = MethodInfo.GetCurrentMethod() as MethodInfo;
string signature = method.ReturnType + " " + method.Name;
signature += "(";
foreach (ParameterInfo parameter in method.GetParameters()) {
signature += parameter.ParameterType.Name + ", ";
}
signature = signature.Trim().Trim(',') + ")";
输出
string test(string, int)
用 GetCurrentMethod 有个问题,如果要封装到函数里面就比较麻烦。比如要专门封装一个函数 GetCurrentMethodInfo ,这个函数放到某个函数中用于得到那个函数的函数名,参数等信息。这时就需要用
下面办法:
System.Diagnostics.StackFrame stackFrame = new System.Diagnostics.StackFrame(1);
MethodBase methodBase = stackFrame.GetMethod();
取参数的方法同楼上