Usando gli attributi CallerInfo possiamo avere informazioni sul chiamante di un metodo  le informazioni che possono essere recuperate sono:  il percorso del file sorgente, il numero della riga nel file sorgente e il nome del caller , informazioni molto importanti in scenari di debug .
Possiamo accedere agli attributi importando il namespace System.Runtime.CompilerServices  e sono rispettivamente
 
Questi sono gli esempi di utilizzo estratti direttamente da MSDN
C#
public void DoProcessing()
{
    TraceMessage("Something happened.");
}
 
public void TraceMessage(string message,
        [CallerMemberName] string memberName = "",
        [CallerFilePath] string sourceFilePath = "",
        [CallerLineNumber] int sourceLineNumber = 0)
{
    Trace.WriteLine("message: " + message);
    Trace.WriteLine("member name: " + memberName);
    Trace.WriteLine("source file path: " + sourceFilePath);
    Trace.WriteLine("source line number: " + sourceLineNumber);
}
 
 
Vb.net
 
Private Sub DoProcessing()
    TraceMessage("Something happened.")
End Sub 
 
Public Sub TraceMessage(message As String,
        <CallerMemberName> Optional memberName As String = Nothing,
        <CallerFilePath> Optional sourcefilePath As String = Nothing,
        <CallerLineNumber()> Optional sourceLineNumber As Integer = 0)
 
    Trace.WriteLine("message: " & message)
    Trace.WriteLine("member name: " & memberName)
    Trace.WriteLine("source file path: " & sourcefilePath)
    Trace.WriteLine("source line number: " & sourceLineNumber)
End Sub
Per informazioni dettagliate è possibile far riferimento alla documentazione tecnica qui