我最近的任务是为解决方案中的每个方法调用添加日志记录语句。这些日志条目需要包含类和方法名称。
我知道我可以使用 MethodBase.GetCurrentMethod()
和 StackFrame.GetMethod()
方法。哪个更好?是否有更好(或更高效)的方法来获取类和方法名称?
最佳答案
嗯,最好/最快的方法是在每个函数中包含一个字符串。这可能不是最实用的解决方案,但是 MethodBase.GetCurrentMethod()
无论如何都需要在每个使用它的方法中进行编码。即你可以写
string funcName = "MyClass.MyFunction(int, int)";
或者你可以写
string funcName = MethodBase.GetCurrentMethod().Name
现在,如果您想获取调用当前函数的函数的名称(即,您想在日志函数的一个位置执行此操作),那么您唯一的选择就是阅读通过 StackFrame。
关于c# - 登录 C# : Getting the class/method name performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568255/