2013-02-27 2 views
9

Sto usando il codice seguente per ottenere il nome del metodo di chiamata e il suo parametro all'interno di un metodo.Come ottenere ParameterInfo Value?

var stackTrace = new StackTrace(); 
var methodName = stackTrace.GetFrame(1).GetMethod().Name; 
var parameters = stackTrace.GetFrame(1).GetMethod().GetParameters(); 

foreach (var parameterInfo in parameters) 
{ 
    var name = parameterInfo.Name; 
    var value = "How to get value?"; 
} 

Ora la mia domanda è di ottenere il valore di quel parametro. Qualche idea?

+0

possibile duplicato di [È possibile ottenere i valori dei parametri 'per ogni frame nello stack di chiamate in .NET] (http://stackoverflow.com/questions/819576/is-it-possible-to-get-parameters- valori-per-ogni-frame-in-call-stack-in-net) – Habib

risposta

1

Non c'è un modo semplice per farlo. L'unico approccio di lavoro che ho visto è l'aggiunta di codice alla tua applicazione che collegherà il debugger esterno a se stesso e leggerà le informazioni sullo stack. John Robbins sta mostrando che questo è il suo book usando le fonti modificate di MDBG.