Hey Guys次のように、現在の関数/サブ(ロギング用)のすべての引数を一般的に反復できる必要があります。
Public sub SampleHandler(ByVal Sender as Object, ByVal e as EventArgs)
Dim argholder as List(of Object)
For each arg in getcurrentargs() '<-------- That thing
argholder.add(arg)
Next
Log(argholder)
'Continue doing method things
End Sub
何かご意見は?私はEmit(完全には把握していません)とStackTraceを介してそれらを抽出しようとしていますが、これまでのところ役に立ちません。私は複数の情報源からMSILがこれを達成できると言われましたが、私が話をした人は誰も私に実用的な実装や方法の明確な説明を与えることができません。
追加情報:
関数へのすべての引数を繰り返し処理し、それらの値をリストに追加できる必要があります。これが名前を抽出して値を取得するために利用できるメソッドによるものであろうと、それらを参照できるある種の汎用識別子によるものであろうと、どちらの方法でも問題ありませんが、プログラムによる静的コードブロックである必要があります。
その意図は、機密性の低い関数(このプロジェクトで使用しているコードに数百が含まれている)で、このコードブロックへのインライン参照をドロップできるようにすることです(そのためのメソッドを考え出しました)。 )関数の名前(done)をキャプチャするには、モジュール/クラス(done)、実行時(done)、結果(関数の場合、done)、現在のerr_level(done)、および値をキャプチャします。パラメータとして渡され(モジュール/クラスと関数名がわかっているロジックでは、必要に応じて値を一致させることができます)、向きを変えてログに記録できるようにします。「センシティブ」関数は、別の方法で処理する必要があるため、p/wやu/nなどをログアウトしません。しかし、それらは世話をされています。