.NET 4.5中引用了三种特性(Attribute), 该特性容许获取调用者的当前编译器的执行文件名、所在行数与方法或属性名称。spa
命名空间code
System.Runtime.CompilerServices orm
包含下面3种特性的说明以下:blog
CallerFilePath : 容许获取包含调用方的源文件的完整路径。 这是编译时的文件路径。编译器
CallerLineNumber: 容许获取源文件中调用方法的行号。string
CallerMemberName: 容许获取方法调用方的方法或属性名称。it
调用示例编译
以上的特性, 都规定该特性只能应用于参数中, 而且须要提供默认行参, 以下:class
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)); }
调用该方法的输出, 则输入编译执行的文件、行号、方法或属性名。file
static void Main(string[] args) { ShowInfo(); //输出: C:\Users\admin\source\repos\Call\Call\Program.cs - 14 - Main Console.ReadKey(); }