6 Answer


3


この情報は、 CLRデバッグAPIを使用して取得できますが、これを抽出するのは簡単ではありません。


2


リフレクションは、スタックから情報を取得するためには使用されません。 それは議会を読みます。

あなたはStackTraceを見たいと思うかもしれません

ここに良い記事:


1


Reflectionはメソッドが持っているパラメータの種類を教えてくれるでしょうが、特定の呼び出しの間にそれらの値を発見するのを助けません。 リフレクションはローカル変数については何も教えてくれません。

デバッガがこの種の情報にアクセスするために使用する種類のAPIが必要です。


0


私はこれが可能だとは思わない、あなたはStackTraceを見ることによってメソッドとそのパラメータを得ることができる。

System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace(true); (Int32 frameCount = 0; frameCount <sTrace.FrameCount; frameCount){System.Diagnostics.StackFrame sFrame = sTrace.GetFrame(frameCount); System.Reflection.MethodBase thisMethod = sFrame.GetMethod(); if(thisMethod == currentMethod){if(frameCount 1 <= sTrace.FrameCount){System.Diagnostics.StackFrame prevFrame = sTrace.GetFrame(frameCount 1); System.Reflection.MethodBase prevMethod = prevFrame.GetMethod(); }}}


0


私はそれが反射を使ってどのように可能であるかわかりません、しかし、織物を使うことを見てください。 SpringFramework.Netでは、メソッド呼び出しを阻止できるポイントカットを定義できます。 他の人もおそらくそれをするでしょう。

これは、 "BeforeAdvice"インターセプターへのリンクです。http://www.springframework.net/docs/1.2.0-M1/reference/html/aop.html#d0e8139


0


http://secondlife.com/[secondlife]の人々はスクリプトを中断し、それらをサーバー間で移動させます。 これは、コールスタック上の変数の値など、実行中のスクリプトの状態をキャプチャする必要があることを意味します。

彼らのスクリプト言語は、.NETランタイムのオープンソース実装であるmono上で動作します。 私は彼らの解決策が通常の問題に当てはまるとは思わない .NET runtime, but the http://download.microsoft.com/download/9/4/1/94138e2a-d9dc-435a-9240-bcd985bf5bd7/Jim-Cory-SecondLife.wmv彼らがそれをどのようにしたかのプレゼンテーションのビデオ](2番目にスキップ半分)まだ面白いかもしれません。