C# 调用者信息特性(Attribute)

时间:2022-10-01 18:54:55

.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();
        }