首页 新闻 会员 周边 捐助

如何获取当前执行函数(过程)名

0
[已关闭问题]

在运行时怎么来获取当前执行函数名称及相关信息

如:

string test(string pArg1,int pArg2){

     .....

    retrun reslut;

}

怎么能获取到我当前执行的函数信息,也就是函数名为test返回值为string,有两个参数,一个为string,一个为int

 

能用反射么?

Pvistely的主页 Pvistely | 菜鸟二级 | 园豆:212
提问于:2009-09-02 19:09
< >
分享
其他回答(1)
0

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)

Gray Zhang | 园豆:17610 (专家六级) | 2009-09-02 21:43
学习了,MethodInfo.GetCurrentMethod()
支持(0) 反对(0) winzheng | 园豆:8797 (大侠五级) | 2009-09-02 21:49
0

用 GetCurrentMethod 有个问题,如果要封装到函数里面就比较麻烦。比如要专门封装一个函数 GetCurrentMethodInfo ,这个函数放到某个函数中用于得到那个函数的函数名,参数等信息。这时就需要用

下面办法:

            System.Diagnostics.StackFrame stackFrame = new System.Diagnostics.StackFrame(1);
            MethodBase methodBase 
= stackFrame.GetMethod();

取参数的方法同楼上

eaglet | 园豆:17139 (专家六级) | 2009-09-03 07:52
参数名可以得到,但是如何得到每个参数当前的值呢?
支持(0) 反对(0) John Yang | 园豆:225 (菜鸟二级) | 2009-10-26 09:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册