.NET 4.5中引用了三种特性(Attribute), 该特性允许获取调用者的当前编译器的执行文件名、所在行数与方法或属性名称。
命名空间
System.Runtime.CompilerServices
包含下面3种特性的说明如下:
CallerFilePath : 允许获取包含调用方的源文件的完整路径。 这是编译时的文件路径。
CallerLineNumber: 允许获取源文件中调用方法的行号。
CallerMemberName: 允许获取方法调用方的方法或属性名称。
调用示例
以上的特性, 都规定该特性只能应用于参数中, 并且需要提供默认行参, 如下:
public static void ShowInfo( [CallerFilePath] string file = null, [CallerLineNumber] int number = 0, [CallerMemberName] string name = null) { Console.WriteLine(string.Format("{0} - {1} - {2}", file, number, name)); }
调用该方法的输出, 则输入编译执行的文件、行号、方法或属性名。
static void Main(string[] args) { ShowInfo(); //输出: C:\Users\admin\source\repos\Call\Call\Program.cs - 14 - Main Console.ReadKey(); }