我目前正在爲我的應用程序寫一個錯誤記錄器,基本上我感興趣的是處理異常時,我調用一個函數CreateLogEntry(...) from我的日誌記錄類。這個想法是,我想CreateLogEntry(...)知道它是從一個方法內調用BadFunction(...)並檢索其參數作爲日誌記錄過程的一部分。現在我已經做了一些家庭作業(我猜測雖然不夠:S),並且我確信我的解決方案在於System.Reflection,並且已經找到了一些關於如何枚舉類中的所有函數的示例( http://www.csharp-examples.net/get-method-names/)。 但是有可能獲得創建該異常的函數的名稱。如何獲取調用方法屬性在C#
EX(我得到了什麼):
public string GetCurrentMode()
{
string currentMode = "";
try
{
currentMode = _host.Mode.ToString();
}
catch(Exception ex)
{
Common.MorpheeException me = new Common.MorpheeException();
me.MethodName = "GetCurrentMode";
me.NameSpace = "MorpheeScript";
me.ErrorNumber = 0;
me.ErrorDescription = ex.Message;
me.StackTrace = ex.StackTrace;
throw new FaultException<Common.MorpheeException>(me);
}
return currentMode;
}
我想擁有什麼:
public string GetCurrentMode()
{
string currentMode = "";
try
{
currentMode = _host.Mode.ToString();
}
catch(Exception ex)
{
Common.MorpheeException me = new Common.MorpheeException(ex);
// Here me should know that it is called from GetCurrentMode() and
// retrieve the parameters if there are any
throw new FaultException<Common.MorpheeException>(me);
}
return currentMode;
}
非常感謝您的幫助
[C#中的反射:我如何獲得調用方法名稱和類型?](http://stackoverflow.com/questions/3095696/reflection-in-c-how-do-i-get-該呼-方法的名稱和類型) – Oliver 2011-03-30 07:59:53