1

Enterprise Library 5で使用するCustomTraceListenerを実装しました。TraceDataメソッドから、実際のロギング呼び出しがあったクラスまでスタックを6レベル上にクロールする必要があり、そこからプロパティが必要です。StackFrameを登るのは、オブジェクトではなくクラスのみを取得するため、私は望んでいないと思いますよね?必要な(文字列)プロパティを取得するための最良の方法は何ですか?

これはFramework4.0にあります。ありがとう。

4

1 に答える 1

0

プログラム自体から .NET スタックから (パラメーター) 値を取得できるとは思いません。メソッド、プロパティ、クラスのみ、つまり .NET メタデータから取得できるものはすべて取得できます。

値が必要な場合は、いくつかの解決策を次に示します。

  • コンパイル前にコードを計測し、パラメーター値をキャプチャするコード行を追加します
  • たとえば、 PostSharpなどを使用して、コンパイル後にコードをインストルメント化します(免責事項: 私はいかなる形でも提携していません)。
  • .NET プロファイラーを作成しますが、これは外部プログラムでなければなりません。CLR profilerのように、既にこれを行う既存のツールがあります。CLR プロファイラーのバージョン 4 (ここから入手可能) には、ソースが付属しています。
于 2011-05-01T07:24:52.397 に答える