C# .NET:有没有办法知道当前正在执行的代码所在的方法?(用于日志类)
我正在用C#编写一个日志类,并希望添加进行日志调用的方法。手动操作并不太吸引人。有没有办法知道当前正在执行的代码在哪个方法中 提前感谢您的精彩 格雷格 编辑:使用MethodBaseC# .NET:有没有办法知道当前正在执行的代码所在的方法?(用于日志类),c#,.net,logging,C#,.net,Logging,我正在用C#编写一个日志类,并希望添加进行日志调用的方法。手动操作并不太吸引人。有没有办法知道当前正在执行的代码在哪个方法中 提前感谢您的精彩 格雷格 编辑:使用MethodBase System.Reflection.MethodBase thisMethod = System.Reflection.MethodBase.GetCurrentMethod(); Console.WriteLine("This method is: " + thisMethod.Name); 使用: 返回表
System.Reflection.MethodBase thisMethod = System.Reflection.MethodBase.GetCurrentMethod();
Console.WriteLine("This method is: " + thisMethod.Name);
使用:
返回表示当前正在执行的方法的MethodBase对象
MethodBase
类型有一个Name
属性,该属性是当前正在执行的方法的名称(作为字符串)
作为补充说明,也许您应该研究一下现有的日志框架,这样您就不必重新发明轮子了。我建议不要这样做
- 日志记录方法通常应该具有尽可能小的开销,以便您可以从性能敏感的代码中调用它
- 内联意味着您可能无法获得正确的方法,尤其是在发布版本中
- 记录异常时,堆栈跟踪将作为异常的一部分,这将在引发异常时为您提供调用堆栈。当记录正常流时,知道方法名就没那么有用了