无异常地获取当前方法和类,并且不在C#中使用反射

Mr_*_*oad 4 .net c#

我想在方法中注销一些INFO日志记录,我不想使用反射来获取类和方法名称.

对于错误日志记录,我可以从异常中获取堆栈但是如何在没有异常的情况下执行此操作以关闭StackTrace?

Tit*_*mir 8

您可以使用调用者属性获取有关调用的信息

public void Log(Exception ex, [CallerFilePath]string callerFilePath = null, [CallerMemberName]string callerMemberName = null, [CallerLineNumber]int callerLineNumber = 0)
{
    Console.WriteLine($"Message: {ex.Message} # File: {callerFilePath} # Line: {callerLineNumber} # Member: {callerMemberName}"  );
}
Run Code Online (Sandbox Code Playgroud)

调用该方法时,编译器会将有关调用者的信息传递给您,您无需手动指定参数.

  • 巫术和巫术☉_☉ (2认同)