【发布时间】:2010-09-15 09:04:15
【问题描述】:
登录C#时,如何知道调用当前方法的方法名?我对System.Reflection.MethodBase.GetCurrentMethod() 了如指掌,但我想在堆栈跟踪中更进一步。我考虑过解析堆栈跟踪,但我希望找到一种更清晰更明确的方式,比如Assembly.GetCallingAssembly(),但用于方法。
【问题讨论】:
-
如果您使用.net 4.5 beta +,您可以使用CallerInformation API。
-
来电信息也多faster
-
我为三种主要方法(
StackTrace、StackFrame和CallerMemberName)创建了一个快速的BenchmarkDotNet 基准测试,并将结果发布为其他人在此处查看的要点:gist.github.com/wilson0x4d/7b30c3913e74adf4ad99b09163a57a1f -
如果您想在不运行的情况下找到调用方法的位置,请记住,如果通过反射调用该方法,则 Shift+F12 不起作用。有时您必须使用 Ctrl+F 来搜索方法名称字符串。
标签: c# .net logging stack-trace system.diagnostics