我想要当前调用的处理程序的名称。
MethodInfo.GetCurrentMethod().Name
或 MethodBase.GetCurrentMethod().Name
在 Debug模式下工作正常。
但是一旦我混淆(使用 confuserEx)我的项目,这 2 个函数返回 "System.Reflection.MethodBase ()"
。
我注意到我可以使用以下行获取我的函数的名称:
((RoutedEventHandler)this.MyMethodName).GetMethodInfo().Name
它返回 "MyMethodName"
,这是预期的结果。
但这根本不是通用的。当我不知道当前方法的名称时,我想要一段代码。
最佳答案
如前所述here :
调用方信息值在编译时作为文字发送到中间语言 (IL) 中。与异常的 StackTrace 属性的结果不同,结果不受混淆的影响。
因此从您的方法中您可以尝试调用以下方法:
public string GetCaller([System.Runtime.CompilerServices.CallerMemberName] string memberName = "")
{
return memberName;
}
关于c# - 获取当前方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156818/