📜  C#5.0 caller info attributes

📅  最后修改于: 2020-11-01 03:03:42             🧑  作者: Mango

C#caller info attributes

C#提供了调用者信息属性,以获取有关调用者方法的信息。通过使用“来电者信息”属性,我们可以获得以下信息。

  • 源文件的位置
  • 调用方法的行号
  • 调用方方法名称

此信息有助于跟踪和调试源代码。

要实现此功能,我们需要在应用程序中使用System.Runtime.CompilerService命名空间。该名称空间包含以下呼叫者信息属性。

Type Attribute Description
String CallerFilePathAttribute It is used to get full path of the source file that contains the caller.
Integer CallerLineNumberAttribute It is used to get line number in the source file at which the method is called.
String CallerMemberNameAttribute It is used to get caller method name.

我们要调用的方法必须使用可选参数。这些可选参数设置为默认值。 C#编译器在方法执行期间将调用者信息设置为这些参数。

让我们来看一个例子。

C# caller info attributes示例

using System;
using System.Runtime.CompilerServices;
namespace CSharpFeatures
{
    class CallerInfoExample
    { 
        static void Main(string[] args)
        {
            // Calling method
            show();
        }
        // We must specify optional parameters to get caller info.
        static void show([CallerMemberName] string callerName = null,
            [CallerFilePath] string callerFilePath = null, 
            [CallerLineNumber] int callerLine = -1)
        {
            Console.WriteLine("Caller method Name: {0}", callerName);
            Console.WriteLine("Caller method File location: {0}", callerFilePath);
            Console.WriteLine("Caller method Line number: {0}", callerLine);
        }
    }
}

输出量

Caller method Name: Main
Caller method File location: f:\C#\C# Features\CSharpFeatures\CallerInfoExample.cs
Caller method Line number: 10