ben bu nereden aldı hatırlamıyorum ama bir süre önce benzer bir şey etrafa ve bir bulunmuştur
public class LogActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
Log("OnActionExecuting", filterContext.RouteData);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
Log("OnActionExecuted", filterContext.RouteData);
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
Log("OnResultExecuting", filterContext.RouteData);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
Log("OnResultExecuted", filterContext.RouteData);
}
private void Log(string methodName, RouteData routeData)
{
var controllerName = routeData.Values["controller"];
var actionName = routeData.Values["action"];
var message = string.Format("{0} controller: {1} action: {2}", methodName, controllerName, actionName);
Debug.WriteLine(message, "Action Filter Log");
}
}
sadece global.asax içinde küresel filtreler eklemek, kullanmak için: Bu günlüğü filtresi bulunan makale ya da bir yere bir şey
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new LogActionFilter());
}
Kaynağı bulabileceğimi görmek için şimdi bir bakacağım.
Düzeltme:this question idi.
PS ayrıca yönelimli programlama (AOP) ve postharp veya spring.net ile enjekte bazı yöntemlerini de kullanabilirsiniz Çağrıları engellemek için kullanabileceğiniz bir motor (sadece kontrol cihazının ötesine geçiyor ancak konfigürasyon dosyasında bir regex ayarlayabiliyorsunuz). –