giovedì 28 febbraio 2013 #

Tips : Ricavare informazioni dal caller di un metodo in C# e VB.net

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

 

Attributo

Descrizione

Tip restituito

CallerFilePathAttribute

Il percorso assoluto del file sorgente dove è definite il caller

String

CallerLineNumberAttribute

Il numero della riga dove viene richiamato il metodo

Integer

CallerMemberNameAttribute

Il nome della proprietà o del metodo chiamante                       

String

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

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (2553)