実行クラスの名前と名前空間を持つメソッドの名前を取得する例外をログに記録しようとしています。このような何か:今ロガーの現在の名前空間、クラス名、メソッド名の取得を最適化する方法
、私はこのように必要なものをすべて取得することができます。
Log.AppendLog(typeof(FamilyPublishCommand).Namespace + "." + GetType().Name + "." + MethodBase.GetCurrentMethod().Name + ": Started.");
私は右の名前空間を取得してやっているもののすべてを移動する方法はあります、クラスとメソッド名を別のアセンブリにある静的ユーティリティメソッドに渡す
Log
の機能と一緒に、私が情報を取得している現在のアセンブリと同じアセンブリに含まれないようにすることを考えています。私はこれらを分けることができますか?
using System.Reflection;
static void Log(MethodBase method, string msg)
{
Console.WriteLine("{0}.{1}: {2}", method.ReflectedType.FullName, method.Name, msg);
}
使用法:
Log(MethodBase.GetCurrentMethod(), myString);
あなたの問題への最も簡単な解決策である
ワウ。素晴らしい答え。私はStackFrame(1).GetMethod()が簡単に最善の方法であることに同意します。大好きです。 – konrad
@konrad嬉しいです。 – stybl