目录
1 For additional logic before/after calling methods
2 For error handling
3 What's else?
4 TODO:
5 LICENCE
Flatwhite is inspired by WebAPI and ASP.NET MVC ActionFilterAttribute, so it works quite similar. The base filter attribute has following methods. So simply implement your filter class and do whatever you want.
public abstract class MethodFilterAttribute : Attribute{
public virtual void OnMethodExecuting(MethodExecutingContext methodExecutingContext);
public virtual Task OnMethodExecutingAsync(MethodExecutingContext methodExecutingContext);
public virtual void OnMethodExecuted(MethodExecutedContext methodExecutedContext);
public virtual Task OnMethodExecutedAsync(MethodExecutedContext methodExecutedContext); }
If you decorate the filter on async methods, only OnMethodExecutingAsync and OnMethodExecutedAsync are called. During the filters are being executed, if the Result value is set to the MethodExecutingContext, the remaining filters will be ignored.
Similar to MethodFilterAttribute, you can implement ExceptionFilterAttribute to provide custom error handling logic. If the property MethodExceptionContext.Handled is true, all remaining ExceptionFilter will be ignored.
public abstract class ExceptionFilterAttribute : Attribute{
public virtual void OnException(MethodExceptionContext exceptionContext);
public virtual Task OnExceptionAsync(MethodExceptionContext exceptionContext); }