В чем разница между реализацией FilterAttribute, IActionFilter и наследованием от ActionFilterAttribute в asp.net mvc 3?
Я вижу, что в одной ситуации мы можем переопределитьOnActionExecuting
или жеOnActionExecuted
методы наследования отActionFilterAttribute
класс как это:
public class MyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{ // bla bla }
}
И в другой ситуации мы также можем реализоватьIActionFilter
а такжеFilterAttribute
нравится:
public class MySecondFilterAttribute : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutingContext filterContext) {}
}
Итак, есть ли различия между этими двумя подходами, возможно, какие-то конкретные ситуации, когда было бы предпочтительнее использовать один из них над другим?
Заранее спасибо.