Jaka jest różnica między implementacją FilterAttribute, IActionFilter i dziedziczeniem z ActionFilterAttribute w asp.net mvc 3?

Widzę, że w jednej sytuacji możemy nadpisaćOnActionExecuting lubOnActionExecuted metody dziedziczenia zActionFilterAttribute klasa jak ta:

public class MyFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    { // bla bla }
}

W innej sytuacji możemy również wdrożyćIActionFilter iFilterAttribute lubię to:

public class MySecondFilterAttribute : FilterAttribute, IActionFilter 
{ 
    public void OnActionExecuted(ActionExecutingContext filterContext) {}
}

Czy są więc jakieś różnice między tymi dwoma podejściami, może jakieś szczególne sytuacje, w których lepiej byłoby użyć jednego z nich w drugim?

Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion