¿Cuál es la diferencia entre la implementación de FilterAttribute, IActionFilter y la herencia de ActionFilterAttribute en asp.net mvc 3?
Veo que en una situación podemos anularOnActionExecuting
oOnActionExecuted
métodos heredados deActionFilterAttribute
clase como esta:
public class MyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{ // bla bla }
}
Y en otra situación también podemos implementar.IActionFilter
yFilterAttribute
Me gusta esto:
public class MySecondFilterAttribute : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutingContext filterContext) {}
}
Entonces, ¿hay alguna diferencia entre estos dos enfoques, tal vez alguna situación particular donde sería preferible usar uno de ellos sobre el otro?
Gracias por adelantado.