6

を使用する場合、スタックトレースの印刷はそれほど難しくありませんSystem.Diagnostics。各メソッドに渡されたパラメーターの値をスタックトレースに出力できるかどうか疑問に思っています。そうでない場合は、その理由を説明します。

これが私の予備コードです:

public static class CallStackTracker
{
    public static void Print()
    {
        var st = new StackTrace();
        for (int i = 0; i < st.FrameCount; i++)
        {
            var frame = st.GetFrame(i);
            var mb = frame.GetMethod();
            var parameters = mb.GetParameters();
            foreach (var p in parameters)
            {
                // Stuff probably goes here, but is there another way?
            }
        }
    }
}

前もって感謝します。

4

1 に答える 1

2

少なくとも、によって提供されるクラスでは、それを行うことはできませんSystem.DiagnosticsStackFrameクラスは引数値にアクセスする方法を提供しません(宣言MethodBase.GetParametersされたパラメーターに関する情報、たとえば名前やタイプを提供しますが、実際の引数の値は提供しません)

CLRデバッグAPIを使用してそれを行うことは可能だと思いますが、おそらくC#からはできません。

于 2012-04-11T22:07:11.923 に答える