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;
        }

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279493.html

(0)
上一篇 2022年8月8日
下一篇 2022年8月8日

相关推荐

发表回复

登录后才能评论