C# Language Attribute für Anruferinformationen

Beispiel

Anrufer-Info-Attribute können verwendet werden, um Informationen über den Aufrufer an die aufgerufene Methode weiterzuleiten. Die Deklaration sieht folgendermaßen aus:

using System.Runtime.CompilerServices;

public void LogException(Exception ex,
                         [CallerMemberName]string callerMemberName = "",
                         [CallerLineNumber]int callerLineNumber = 0,
                         [CallerFilePath]string callerFilePath = "")
{
    //perform logging
}

Und der Aufruf sieht so aus:

public void Save(DBContext context)
{
    try
    {
        context.SaveChanges();
    }
    catch (Exception ex)
    {
        LogException(ex);
    }
}

Beachten Sie, dass nur der erste Parameter explizit an die LogException Methode übergeben wird, während die übrigen Parameter zur Kompilierzeit mit den entsprechenden Werten versehen werden.

Der Parameter callerMemberName erhält den Wert "Save" - den Namen der aufrufenden Methode.

Der Parameter callerLineNumber erhält die Nummer der Zeile, in die der Aufruf der LogException Methode geschrieben wird.

Der Parameter 'callerFilePath' erhält den vollständigen Pfad der Datei, in der die Save Methode deklariert ist.