C#获取调用文件名,行号,方法
作者:互联网
一.第一种方式
[DebuggerStepThrough] //跳过调式 static void Print(string str, [CallerFilePath] string filePath = "",//文件路径 [CallerLineNumber] int num = 0, //行号 [CallerMemberName] string name = "") //方法名 { Console.WriteLine(str); Console.WriteLine("filePath {0}", filePath); Console.WriteLine("Line {0}", num); Console.WriteLine("Call from {0}", name); }
二.第二种方式:
1.获取行号
/// <summary> /// Get line number of code dynamically /// </summary> /// <param name="skipFrames">number of frames to skip</param> /// <returns>line number of code after skipping frames</returns> public static int GetCodeLineNum(int skipFrames) { StackTrace st = new StackTrace(skipFrames, true); StackFrame fram = st.GetFrame(0); int lineNum = fram.GetFileLineNumber(); return lineNum; }
2.获取文件路径
/// <summary> /// Get file name information of code dynamically /// </summary> /// <param name="skipFrames">number of frames to skip</param> /// <returns>file name information of code after skipping frames</returns> public static string GetCodeFileName(int skipFrames) { StackTrace st = new StackTrace(skipFrames, true); StackFrame fram = st.GetFrame(0); string source = fram.GetFileName(); return source; }
标签:StackTrace,code,Console,string,文件名,C#,fram,行号,int 来源: https://www.cnblogs.com/Zingu/p/16560410.html