私は現在、組み込みの TraceListener を使用してアプリケーション ログ ライブラリを開発しています。このライブラリは多くのプロジェクトで使用され、ログ ファイルに何が書き込まれるかを気にするだけでよく、方法は気にしなくてもよい単純なインターフェイスを提供する必要があります。
リフレクション名前空間を使用することで、どのアプリケーションが現在ログ関数を呼び出しているか (実行アセンブリ名を取得) を把握できますが、ログ関数を呼び出した関数とクラスの名前も必要です。
私が持っているとしましょう:
public static void LogInfo(string vLogText) {
Trace.WriteLine(
MethodInfo.GetCurrentMethod().Name
+ this.GetType().ToString() + vLogText);
}
別のプロジェクト(クラス:TestClass、メソッド:TestMethod)から呼び出す場合
Tracer.LogInfo("log this!")
ログに表示されることを期待しています:
TestClass, TestMethod, log this!
しかし、代わりに私は得ました
TracerClass, LogInfo, log this!
親メソッドとクラス名を取得するには?