我使用這行代碼的錯誤處理的:獲取文件名,而不是控制器的名稱
catch (Exception exception)
{
string controllerAction = [email protected]"{ControllerContext.RouteData.Values["controller"].ToString()}Controller/{ControllerContext.RouteData.Values["action"].ToString()}";
iCommCommon.CommWeb.WriteLog("<ERR>", CommUser.piUSER_KEY, controllerAction, exception.Message + "\n" + (exception.InnerException != null ? exception.InnerException.Message : ""));
}
字符串controllerAction給我控制器名稱/動作名稱。
我想保存控制器的文件名,而不是控制器名稱。
因此,而不是:
HomeController
我想記錄:
HomeController.cs
而且已經controllerAction返回類似:
HomeController.cs/MyAction
這可能嗎?
您可以使用反射來查詢調用堆棧,並從中獲取詳細信息 – DiskJunky
也許您有代碼示例? – FrenkyB
查看此答案的詳細信息。我強烈建議使用編譯時間屬性,因爲有時堆棧跟蹤將成爲內聯的受害者。 https://stackoverflow.com/questions/31518803/get-the-filename-from-stacktrace-and-frame-when-throw-an-exception – Gusdor