2009-11-30 92 views
4

在方法調用中,我需要在堆棧中「跳」三個層,並檢索傳遞給該方法的參數的類型和值。 獲取參數類型很簡單,但我找不到一種方法將值傳遞給堆棧上的某個方法。如何從StackTrace中獲取參數值

var st = new StackTrace(); 
var frames = st.GetFrames(); 
var methodParameters = frame[2].GetMethod().GetParameters; 
// get each parameter value 

注意:使用StackTrace不是強制性的。

有沒有辦法找到在運行時傳遞給方法的參數的值?

+0

我剛碰到這個,我找不到獲取值的好方法。我會創建一個框架來存儲我的應用程序入口點上的值。 – rerun

+0

我可能會問不可能 - 看起來不可能從堆棧跟蹤中獲得被調用方法的值。 –

回答

6

我不認爲有一種方法,除非你開發自己的系統來存儲值。

反射名稱空間表示static有關程序集的數據,您需要在運行時檢索值。

我發現PostSharp在MSDN論壇中提到,但我從來沒有嘗試過。