2

リフレクションを使用してメソッドのパラメーターをログに記録しようとしています。StackOverflow でこの問題について投稿された以前の質問も読んで、 CLR API を指摘しました。

APIを使用して渡されたパラメータの値をどのように取得するかについて、誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

3

基本的に、「バニラ」.NETコードを使用することはできません。パラメータは単なるローカル変数であり、他のスレッドで説明されているデバッガAPIを詳しく調べないと、その値を取得できません。

あなたができるかもしれないことは、 PostSharpを使用してロギングコードを挿入することです。デバッグAPIを確認する前に、そのルートに進むことをお勧めします。

于 2008-10-09T16:18:41.063 に答える
1

冒険心があれば、System.Runtime.Remoting.Messaging の RealProxy クラスを見ることができます。メソッドの呼び出しをインターセプトできるプロキシ クラスを実装できます。その後、パラメーターをログアウトして、呼び出しを実際のクラスに転送できます。

これによりパフォーマンスが低下しますが、おそらくあなたが探しているものが得られるでしょう...

于 2008-10-09T16:41:14.857 に答える
0

@ Sean: これは有望に思えます。WCF でそのような値を傍受して取得することは可能ですか? サービス ログに既にその情報が含まれていることは知っていますが、それを掘り下げるのは難しいため、メソッドとそのパラメーターをログに記録する別の方法を探す必要があります。

于 2008-10-09T16:57:16.367 に答える