MVC フィルターを使用すると前処理と後処理の動作を追加でき、filterContextパラメーターで十分な情報が得られる ため、プロファイリングには MVCフィルターを使用することをお勧めします。
たとえば、プロファイリング用に ProfilerAttribute を作成します
public class ProfilerAttribute : FilterAttribute, IActionFilter, IResultFilter, IExceptionFilter {
public void OnActionExecuting(ActionExecutingContext filterContext) {
Debug.WriteLine("Before Action is executing");
}
public void OnActionExecuted(ActionExecutedContext filterContext) {
Debug.WriteLine("After Action is executed");
}
public void OnResultExecuted(ResultExecutedContext filterContext) {
Debug.WriteLine("After Action Result is executed");
}
public void OnResultExecuting(ResultExecutingContext filterContext) {
Debug.WriteLine("Before Action Result is executing");
}
public void OnException(ExceptionContext filterContext) {
Debug.WriteLine("oops! exception");
}
}
Global.ascxにGlobalFilterとして登録します....
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new HandleErrorAttribute());
filters.Add(new ProfilerAttribute());
}
それが役立つことを願っています。ありがとう。
更新: MVC フィルターは、ルーティングが一致した後にのみ実行されることを忘れていました。したがって、MVC によって既に行われているため、静的リソースを除外する必要はありません。