我已经编写了一个日志类和一个函数,如以下代码所示:

Log(System.Reflection.MethodBase methodBase, string message)

每次登录时,我也会从methodBase.Name和methodBase.DeclaringType.Name中记录类名。

我阅读了以下Using Get CurrentMethod帖子,发现该方法很慢。

我应该使用this.GetType()而不是System.Reflection.MethodBase,还是应该在日志中手动记录类/方法名称,例如Log(“ClassName.MethodName”,“日志消息)?最佳实践是什么?

最佳答案

真的要看

如果使用this.GetType()方法,您将丢失方法信息,但将获得很大的性能提升(根据链接,显然是1200倍)。

如果提供的接口(interface)允许调用者提供字符串(例如Log("ClassName.MethodName", "log message")),则可能会获得更好的性能,但这会使您的API不那么友好(调用开发者必须提供类名和方法名)。

10-06 01:00