Comment écrire une action de filtre pour tous les contrôleurs

Voici un exemple de l'action du filtre. Nous savons que lorsque nous écrivons une action de filtre alors nous avons besoin pour décorer le contrôleur avec un attribut comme cela, à l'utiliser pour n'importe quel contrôleur.

Je voudrais savoir si il existe un moyen d'écrire une action de filtre qui va travailler pour tous les contrôleurs de sorte que je n'ai pas besoin de décorer toutes les contrôleurs avec une action de filtre d'attribut. Des idées?

[LogActionFilter]
public class HomeController : Controller
{}

public class LogActionFilter : ActionFilterAttribute

     {
          public override void OnActionExecuting(ActionExecutingContext filterContext)
          {
               Log("OnActionExecuting", filterContext.RouteData);       
          }

          public override void OnActionExecuted(ActionExecutedContext filterContext)
          {
               Log("OnActionExecuted", 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");
          }

     }

OriginalL'auteur Thomas | 2014-09-25