, ( ) , , , , , - .
AttributeUsage, ( !), (/) . "" , : , ( ) ( ) ( ).
:
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method, Inherited=true, AllowMultiple=false)]
public class MyCustomFilterAttribute : ActionFilterAttribute
{
private MyCustomFilterMode _Mode = MyCustomFilterMode.Respect;
public MyCustomFilterAttribute()
{
}
public MyCustomFilterAttribute(MyCustomFilterMode mode)
{
_Mode = mode;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (_Mode == MyCustomFilterMode.Ignore)
{
return;
}
}
}
public enum MyCustomFilterMode
{
Ignore = 0,
Respect = 1
}
( , , ! , : /, .)
:
[MyCustomFilter]
public class MyBaseController : Controller
{
}
public class HomeController : MyBaseController
{
public ActionResult FilteredAction1...
public ActionResult FilteredAction2...
[MyCustomFilter(Ignore)]
public ActionResult MyIgnoredAction...
}
[MyCustomFilter(Ignore)]
public class SomeSpecialCaseController : MyBaseController
{
public ActionResult IgnoredAction1...
public ActionResult IgnoredAction2...
[MyCustomFilter]
public ActionResult FilteredAction1...
}
, , - , .