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