ログメッセージを取得するログメソッドを持つ「ロガー」クラスがあり、メッセージと呼び出し元のメソッドをログに書き込みます。最初に、ログメソッドに新しいパラメーターを送信するために次のことも行いましたMethod.Base.GetCurrentMethod()
。Relection.MethodBase を使用する別の方法を見つけました。
public void Log(string message)
{
stackTrace = new StackTrace();
string methodName = stackTrace.GetFrame(1).GetMethod().Name;
....
}
しかし、log メソッドを呼び出すたびに から新しいインスタンスをStackTrace
作成する必要があり、コンストラクターでインスタンスを作成しようとすると、メソッド名がInvokeMethod
.
プロジェクトでは MEF を使用しています。コードを改善する方法はありますか?