【发布时间】:2016-03-13 10:16:20
【问题描述】:
我想知道当前被调用的处理程序的名称。
MethodInfo.GetCurrentMethod().Name 或 MethodBase.GetCurrentMethod().Name 在调试模式下工作正常。
但是一旦我混淆(使用 confuserEx)我的项目,这 2 个函数就会返回 "System.Reflection.MethodBase ()"。
我注意到我可以使用以下行获取函数的名称:
((RoutedEventHandler)this.MyMethodName).GetMethodInfo().Name
它返回"MyMethodName",这是预期的结果。
但它根本不是通用的。当我不知道当前方法的名称时,我想要一段代码。
【问题讨论】:
-
如果没有其他帮助,涉及源代码预处理器的解决方案是否可以接受?
-
@Thomas, Yahya:不相信这是重复的,因为没有一个链接的问题具体提到了为使其对代码混淆具有鲁棒性而引入的困难。
-
@O.R.Mapper 删除了它。
-
如果 OP 在 4.5 上,
[CallerMemberName]是否解决了混淆问题? @O.R.Mapper