我們有一個「記錄器」類,它有log方法獲取日誌消息,並向日志中寫入消息和調用方法,首先我們做了以下也發送到日誌方法新參數Method.Base.GetCurrentMethod()
。 我找到了另一種方式,使用Relection.MethodBase:如何提高代碼獲取調用方法在C#中
public void Log(string message)
{
stackTrace = new StackTrace();
string methodName = stackTrace.GetFrame(1).GetMethod().Name;
....
}
但是我有一個問題,每一個呼叫日誌的方法,我不得不從StackTrace
創建新實例,當我試圖創建實例在構造函數中,我得到的方法名稱是InvokeMethod
。
我們在我們的項目中使用MEF。 任何想法如何改善代碼?
對不起!你沒有達到我自己的目標,我需要一種方法來減少從StackTrace創建實例 –
請參閱我的編輯@RamzyAbourafeh! –
我不能在環境中罰款StackTrace成員,在Silverlight中使用它會有問題嗎? –