リフレクションを使用してメソッドのパラメーターをログに記録しようとしています。StackOverflow でこの問題について投稿された以前の質問も読んで、 CLR API を指摘しました。
APIを使用して渡されたパラメータの値をどのように取得するかについて、誰かが私を正しい方向に向けることができますか?
リフレクションを使用してメソッドのパラメーターをログに記録しようとしています。StackOverflow でこの問題について投稿された以前の質問も読んで、 CLR API を指摘しました。
APIを使用して渡されたパラメータの値をどのように取得するかについて、誰かが私を正しい方向に向けることができますか?
基本的に、「バニラ」.NETコードを使用することはできません。パラメータは単なるローカル変数であり、他のスレッドで説明されているデバッガAPIを詳しく調べないと、その値を取得できません。
あなたができるかもしれないことは、 PostSharpを使用してロギングコードを挿入することです。デバッグAPIを確認する前に、そのルートに進むことをお勧めします。
冒険心があれば、System.Runtime.Remoting.Messaging の RealProxy クラスを見ることができます。メソッドの呼び出しをインターセプトできるプロキシ クラスを実装できます。その後、パラメーターをログアウトして、呼び出しを実際のクラスに転送できます。
これによりパフォーマンスが低下しますが、おそらくあなたが探しているものが得られるでしょう...
@ Sean: これは有望に思えます。WCF でそのような値を傍受して取得することは可能ですか? サービス ログに既にその情報が含まれていることは知っていますが、それを掘り下げるのは難しいため、メソッドとそのパラメーターをログに記録する別の方法を探す必要があります。