获取当前方法名称

时间:2015-12-08 13:12:51

标签: c# methods

我想要调用当前Handler的名称。

MethodInfo.GetCurrentMethod().NameMethodBase.GetCurrentMethod().Name在调试模式下正常工作。

但是一旦我混淆了(使用confuserEx)我的项目,2个函数就会返回"System.Reflection.MethodBase ()"

我注意到我可以使用以下行获取我的函数名称: ((RoutedEventHandler)this.MyMethodName).GetMethodInfo().Name

返回"MyMethodName",这是预期的结果。

但它根本不是通用的。当我不知道当前方法的名称时,我想要一段代码。

1 个答案:

答案 0 :(得分:13)

如上所述here

在编译时将调用者信息值作为文字发送到中间语言(IL)。与异常的StackTrace属性的结果不同,结果不会被混淆影响。

因此,从您的方法中,您可以尝试调用以下方法:

public string GetCaller([System.Runtime.CompilerServices.CallerMemberName] string memberName = "")
{
     return memberName;
}