C# Language Attributi di informazioni sul chiamante

Esempio

Gli attributi di informazioni sul chiamante possono essere utilizzati per trasmettere informazioni sull'invocatore al metodo richiamato. La dichiarazione assomiglia a questo:

using System.Runtime.CompilerServices;

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

E l'invocazione assomiglia a questo:

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

Si noti che solo il primo parametro viene passato esplicitamente al metodo LogException mentre il resto di essi verrà fornito in fase di compilazione con i valori pertinenti.

Il parametro callerMemberName riceverà il valore "Save" , il nome del metodo di chiamata.

Il parametro callerLineNumber riceverà il numero di qualsiasi riga su LogException è scritta la chiamata del metodo LogException .

E il parametro 'callerFilePath' riceverà il percorso completo del file in cui è stato dichiarato il metodo Save .