C# 中使用特性获得函数被调用的路径,行号和函数

时间:2024-09-03 12:03:20

自从 .net framework 4.5  增加了几个特性来获得函数的调用路径(CallerFilePath),调用行号(CallerLineNumber),和调用函数(CallerMemberName)

using System;
using System.Runtime.CompilerServices; namespace myattribute
{
  class Program
{
static void Print(string str,
[CallerFilePath] string filePath = "",
[CallerLineNumber] int num = ,
[CallerMemberName] string name = "")
{
Console.WriteLine(str);
Console.WriteLine("filePath {0}", filePath);
Console.WriteLine("Line {0}", num);
Console.WriteLine("Call from {0}", name);
} static void Main(string[] args)
{
Print("nothing");
Console.ReadKey();
}
}
}

运行结果如下:

C# 中使用特性获得函数被调用的路径,行号和函数

有了这个功能,我们在日志输出时就方便了很多,可以提供跟多的信息了,方便问题调查。